如何将Ubuntu作为服务安装Jenkins从机?

8
我有一台Ubuntu 16.04 LTS机器,通过JNLP连接成功连接到Jenkins服务器。我连接的步骤如下:
1. 在从机中创建一个名为/home/MyUbuntu/Jenkins的目录。 2. 下载agent.jar和slave-agent.jnlp文件到该目录。 3. 从终端运行以下命令:
java -jar agent.jar -jnlpUrl http://my-jenkins-server:8080/computer/MyNode/slave-agent.jnlp -secret 6f8bb3250d6dbcda77979797997b0ea6bcaaa064785d558c0e4ea07d03 -workDir "/home/MyUbuntu/Jenkins"
连接成功。
问题: 一旦我关闭终端,连接就会断开。
问题: 如何将其添加为Ubuntu 16.04 LTS的服务,以便每次重启机器时都会启动?

当您的系统启动时,您可以启动您的进程,将其放在cron作业中,这将是最简单的方法。 - user2760375
我该如何让它一直运行,而不是在特定的时间运行? - Shahboz
这不是针对Ubuntu的,但此页面至少提供了适用于CentOS的启动脚本 - sschuberth
尝试这个:https://arjunphp.com/jenkins-agent-linux-service/ - Humayun Rana
1个回答

2
如果您使用的是System D,请将以下文件添加到/etc/systemd/system/目录中。
[Unit]
Description=Jenkins slave connection
Wants=network.target
After=network.target

[Service]
ExecStart=java -jar agent.jar -jnlpUrl http://jenkinsurl:port/endpoint.jnlp -secret 4lph4num3r1cs3cr3t -workDir "/base/path/of/your/jenkinsjar"
Restart=always
WorkingDirectory=/base/path/of/your/jenkinsjar
User=my-user
Group=my-group
RestartSec=20s


[Install]
WantedBy=multi-user.target
Alias=jenkins.service

文件的权限和所有权可能会因服务或操作系统而异。在/lib/systemd/system/中列出长列表文件,以了解您需要或想要的权限(可能是root:root 644)。
注意,命令是Jenkins在创建代理jar时为您提供的命令。只需将其用于ExecStart即可。
对于usergroup,我使用拥有Jenkins工作区所在目录的用户。例如,如果Jenkins工作区在/home/ubuntu中,我将指定ubuntu作为usergroup
之后... 如果您不是以root身份运行,则在这些命令前加上sudo 可能最好重新加载System D:systemctl daemon-reload
启动:systemctl start jenkins.service。请注意,此命令涉及文件Alias的最后一行。
如果您希望该服务随计算机启动,请启用它:systemctl enable jenkins.service
这是我文件的基础 Git Gists:

https://gist.github.com/unakatsuo/d4711f52a0ab0b9bc8010018149a7e84 https://gist.github.com/dragolabs/05dfe1c0899221ce51204dbfe7feecbb

我相信可以为服务配置做更多的事情,但在我的情况下,我管理着许多不同的服务器,只需要在启动后自动启动它!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接