設定
今まではプロセス監視にmonitなどを使っていたのですが、systemdではその機能があると知ったので試してました。
まずは*.service
ファイルのRestartにalwaysが設定されている必要があります。(td-agentの場合は/usr/lib/systemd/system/td-agent.service)
Restart=always
設定
設定し終わったら必要に応じてserviceを再起動したあとプロセスを確認します。
$ ps axu |grep td-agent
root 15734 0.0 3.3 160492 32688 ? Sl 06:51 0:00 /opt/td-agent/embedded/bin/ruby /opt/td-agent/embedded/bin/fluentd --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid
root 15739 0.0 4.7 200532 46316 ? Sl 06:51 0:02 /opt/td-agent/embedded/bin/ruby -Eascii-8bit:ascii-8bit /opt/td-agent/embedded/bin/fluentd --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid --under-supervisor
ec2-user 16299 0.0 0.0 119484 972 pts/0 S+ 07:54 0:00 grep --color=auto td-agent
起動しているプロセスをkillしてみます。
$ sudo kill -9 15734
もう一度プロセスを確認すると
$ ps axu |grep td-agent
root 16332 0.0 3.2 160492 32112 ? Sl 07:57 0:00 /opt/td-agent/embedded/bin/ruby /opt/td-agent/embedded/bin/fluentd --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid
root 16337 6.8 4.0 186000 39972 ? Sl 07:57 0:00 /opt/td-agent/embedded/bin/ruby -Eascii-8bit:ascii-8bit /opt/td-agent/embedded/bin/fluentd --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid --under-supervisor
ec2-user 16351 0.0 0.1 119484 992 pts/0 S+ 07:57 0:00 grep --color=auto td-agent
このようにちゃんとPIDが変わって起動されているのが分かりました。