我已经创建了下面的单元文件来在linux上创建一个systemd服务。此文件将在计算机上启动jenkins代理。在我的管道中有一个阶段,从机将被重新引导。创建一个在重启后启动的服务是我能够想到的解决方案,这样我的管道执行就可以在重启后继续。
[Unit]
Description=Run jenkinsAgent at startup
After=network.target
[Service]
WorkingDirectory=/home/qatest/jenkins
Type=simple
ExecStart=/bin/bash /home/qatest/jenkins/jenkinsAgent.sh
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target
我的管道(groovy)使用hostName = sh(script: "hostname", returnStdout: true)
。但是当jenkins代理作为systemd服务启动并运行作业时,hostName
返回为空。
如果我使用sudo ./jenkinsAgent.sh
在shell中手动启动jenkins代理,那么sh
可以很好地运行作业。(* 我的用户在sudoers列表中 *)。
我最初认为systemd服务中的std没有正确定向,所以我在单元文件中尝试了StandardOutput=journal+console
,但无济于事。
我错过了什么?
1条答案
按热度按时间iswrvxsc1#
我修改了如下所示的单元文件,问题得到了解决。