systemd前置/bin到环境路径

systemd前置/bin到环境路径,systemd,Systemd,我正在尝试将我的竹代理设置为系统服务。服务文件如下所示: [Unit] Description=Atlassian Bamboo Agent After=syslog.target network.target [Service] Type=forking User=bamboo Group=bamboo ExecStart=/opt/bamboo-1/bin/bamboo-agent.sh start ExecStop=/opt/bamboo-1/bin/bamboo-agent.sh st

我正在尝试将我的竹代理设置为系统服务。服务文件如下所示:

[Unit]
Description=Atlassian Bamboo Agent
After=syslog.target network.target

[Service]
Type=forking
User=bamboo
Group=bamboo
ExecStart=/opt/bamboo-1/bin/bamboo-agent.sh start
ExecStop=/opt/bamboo-1/bin/bamboo-agent.sh stop
Environment="PATH=/opt/rh/devtoolset-3/root/bin/:/usr/local/bin:/usr/bin"

[Install]
WantedBy=multi-user.target
当我检查流程环境时,路径被正确设置为我所期望的,唯一的例外是我的路径前面有
/bin

cat /proc/12345/environ <--- 12345 is my Bamboo PID
...
PATH=/bin:/opt/rh/devtoolset-3/root/bin/:/usr/local/bin:/usr/bin
...

cat/proc/12345/environ我创建了一个测试服务,在使用新路径设置
Environment=
后,它刚刚打印出路径,并发现它在使用systemd 229的Ubuntu 16.04上按预期工作

我的结论是,脚本中的某些内容在您的环境中是预挂起的/bin


systemd.exec
man页面中没有任何内容表明systemd的设计是按照您观察的方式来进行的

你说得对:Bamboo启动脚本在
路径中添加了
$JAVA\u HOME/bin
。由于未设置
JAVA\u HOME
,因此它实际上是在添加
/bin
。因此,我通过在服务配置中添加适当的
Environment
行来设置
JAVA\u HOME
,解决了这个问题。