Ubuntu 16.04 LTS で、Apache 2.4 の自動再起動
そもそも最初から自動で再起動するように設定して置いて欲しいんですけどぉ。
Ubuntu 16.04 LTS で入る Apache 2.4 は、ちゃんと systemd 管理になってはいるのですが、自動再起動の設定がされていません。
$ sudo systemctl show apache2 Type=forking Restart=no <- Restart がデフォルト値のまま! NotifyAccess=none RestartUSec=100ms TimeoutStartUSec=5min TimeoutStopUSec=5min RuntimeMaxUSec=infinity WatchdogUSec=0 WatchdogTimestamp=Thu 2017-03-02 18:10:17 JST WatchdogTimestampMonotonic=169883017858 FailureAction=none (snip)
じゃあどうすれば良いかというと簡単で、自分で自動再起動設定を override すれば大丈夫。
$ sudo systemctl edit apache2
とするとエディタが開くので、以下の内容を書き込んでやれば、service の設定が更新されて、自動再起動が有効になります。
[Service] Restart=always
on-failure にするか always にするかはお好み次第(on-failure だと正常終了した場合は再起動しない)ですが、今回は「どうせ Web サーバなんだし起動するのが当たり前なので always にしとけ」ということで always に。要らなければ service を無効化すれば良いだけですしね。