systemd を使用した単純なサービスの構成

systemd を使用した単純なサービスの構成

私たちは、プロジェクトを構築するリモートエージェントとの継続的な統合のためにBambooサーバーを使用しています。これらのエージェントは、単純なシェルスクリプト(うまく機能)を使用して起動できます。しかし、さらに、systemdエージェントの起動時に自動的に起動し、人々がコマンドを介してsystemctlエージェントを起動/停止できるようにする単位にするつもりです。これが私が試したことです。

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

[Service]
Type=forking
User=shub
Group=shub
ExecStart=/home/shub/bamboo-agent-home/bin/bamboo-agent.sh start
ExecStop=/home/shub/bamboo-agent-home/bin/bamboo-agent.sh stop

[Install]
WantedBy=multi-user.target

私がやった以上のものsystemctl daemon-reload。問題は、再起動後にエージェントが起動しなくなり、奇妙に動作することです(サービスが時々再起動されるか、後で正しく起動されないsystemctl start)。それでは、私が何を間違っているのでしょうか?Typeに変更することを検討しましたが、simpleエージェントがバックグラウンドサービスとして実行されるようにしたいと思います(実行後にバックグラウンドでエージェントを実行するスクリプト自体)。

ベストアンサー1

いろんな質問をしました。 「起動時にカスタムシステムサービスが起動しないのはなぜですか?」という質問に答えます。

答えはまだしていないからです。有効それ。を実行すると、systemctl enable my-service-nameユニット[Install]ファイルのブロックが実行されます。

この場合、systemdにまで待つように指示しましたmulti-user.target

コマンドを実行するとenableシンボリックリンクが生成され、/etc/systemd/system/multi-user.target.wants/シンボリックリンクが存在すると実際にsystemd起動時にサービスが開始されたことを示します。

「奇妙に行動する」コメントを詳細を含む別の質問に置き換えることをお勧めします。おそらく何が起こっているのかについてのシステムログの詳細を含めることができます。 (journalctl出力を確認してください)。

おすすめ記事