2016-09-19 8 views
0

Bambooエージェントをsystemdサービスとして設定しようとしています。サービスファイルは次のようになります。私は、プロセスの環境を確認するときsystemd環境変数へのprepending/bin

[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が正しく私の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など

PATHの先頭に付加することが/binを防ぐためにどのような方法がありますか?

答えて

3

私はちょうど新しいパスでEnvironment=を設定した後、パスをプリントアウトしたテストサービスを作成し、そして予想通り、それは私があなたのスクリプトの中で何かが前であると結論にsystemd 229

でのUbuntu 16.04で働きましたあなたの環境に/ binを保留しています。

マニュアルページのsystemd.execマニュアルページには、systemdがあなたの観察したとおりに動作するように設計されていることはありません。

+1

あなたは正しいです:Bambooスタートアップスクリプトは '$ JAVA_HOME/bin'を' PATH'に追加していました。 'JAVA_HOME'は設定されていないので、実際には'/bin'を追加していました。だから、私はこれを解決するために 'JAVA_HOME'を設定する適切な' Environment'行をサービス設定に追加しました。 – Xabs