よかろうもん!

アプリからインフラまで幅広くこなすいまどきのクラウドエンジニアが記す技術ブログ

Fedora17でmonitをsystemdから安定起動する方法

Fedora17でmonitをsystemd経由で起動すると何故かdaemonが正常起動するときとしない時がありました。

正しくは起動処理は上手くいくが、daemonの状態がactiveからdeactivating (stop-sigterm)になり、最後には inactive (dead) になってしまうという状況でした。

 

# service monit status

Redirecting to /bin/systemctl status  monit.service
monit.service - Monit process and file monitoring utility
Loaded: loaded (/usr/lib/systemd/system/monit.service; enabled)
Active: inactive (dead) since Fri, 28 Sep 2012 00:36:01 +0900; 28s ago
Process: 10201 ExecStart=/usr/bin/monit -c /etc/monitrc (code=exited, status=0/SUCCESS)
Main PID: 10202 (code=exited, status=0/SUCCESS)
CGroup: name=systemd:/system/monit.service

 

上記のようなステータスになり、monitのdaemonがinactiveになります。

ですが、時折、正常起動できたりするため安定起動しないことに不安をおぼえます。

 

これを解消するにはmonitの起動ファイルに手を加えます。 

# vi /usr/lib/systemd/system/monit.service

[Unit]
Description=Monit process and file monitoring utility
After=network.target

[Service]
#Type=forking
Type=simple
ExecStart=/usr/bin/monit -I
ExecReload=/usr/bin/monit reload

[Install]
WantedBy=multi-user.target

 ※SystemdのServiceの詳細はこちらを見るとわかります。

 

ここではTypeをsimpleにして、さらにmonit起動オプションを付けてbackgroundで動かないようにしてます。

これでmonitも安定稼働するようになるはずです。