2016-09-19 46 views
0

我試圖將我的Bamboo代理安裝爲systemd服務。該服務文件是這樣的:systemd prepending/bin到環境PATH

[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 

當我檢查的過程中環境,路徑是正確設置爲我所期望的,與我的PATH被換成了/bin唯一的例外。

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

這意味着我的構建將使用錯誤的gcccmake

有什麼辦法來防止/bin被前置到路徑?

回答

3

我創建了剛剛打印出來的路徑與新路徑設置Environment=後的測試服務,並發現229

我的結論是什麼在你的腳本前它工作在Ubuntu 16.04作爲有望與systemd掛起/ bin到您的環境。

systemd.exec手冊頁中沒有任何內容表明systemd的設計目的與您的觀察方式相同。

+1

你是對的:Bamboo啓動腳本正在爲'PATH'添加'$ JAVA_HOME/bin'。由於'JAVA_HOME'沒有設置,它實際上是在附加'/ bin'。所以我通過在服務配置中添加適當的'Environment'行來設置'JAVA_HOME'來解決這個問題。 – Xabs