設定
今まではプロセス監視に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が変わって起動されているのが分かりました。