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 を無効化すれば良いだけですしね。