- blogs:
- cles::blog

Systemd でサービスが落ちたときに自動的にサービスを再起動させる



Linux で常に起動しておきたい(落ちては困る)デーモンがある場合には inittab を使ってプログラムを respawn にする設定しておくということができました。
例えば以下のような設定です。
/etc/inittab
この機能は SysVinit/Upstart で実現されていたわけですが、これが CentOS7 では Systemd に置き換わっているのでこの手は使えません。
これについて代替となるなにかいい手がないかなと Systemd マニュアルを眺めていたら systemd.service の部分にRestart= という定義ができることを発見しました。
設定出来る値は no(デフォルト), on-success, on-failure, on-abnormal, on-watchdog, on-abort, always の7種類。とりあえず respawn と同じ状態にしたいという場合には always と設定すれば良さそうです。
実際に .service ファイルに書く際には [Service] の中に記述する必要があります。
† respawn はゲーム用語?
respawn という英単語は個人的に inittab 以外で出逢ったことがないのですが、英英辞典だと「殺された時に再出現すること」という意味のゲーム用語ということになっているようです。
サービスやプロセスも強制的に止めることは kill(殺す) と表現するのでこれはこれで適切なのでしょう。
respawn - definition of respawn in English | Oxford Dictionaries
(of a character in a video game) reappear after having been killed
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/9123
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112298)
3 . 年次の人間ドックへ(111769)
4 . 2023 年分の確定申告完了!(1つめ)(111349)
5 . 三菱鉛筆がラミーを買収(111238)