NGINXプロセスが意図せず終了した場合、自動で再起動するには、systemdを活用するのが一般的です。以下に、その手順を説明します。
1. systemdサービスファイルの確認
通常、NGINXはsystemdによって管理されています。サービスファイルの場所は以下の通りです:
/etc/systemd/system/nginx.service
または
/lib/systemd/system/nginx.service
2. サービスファイルの編集
サービスファイルに自動再起動の設定を追加します。
手順:
- サービスファイルを開きます(ファイルの場所に応じて適切に変更)。
sudo nano /lib/systemd/system/nginx.service
-
[Service]
セクションに以下を追加または編集します:[Service] Restart=always RestartSec=5s
-
Restart=always
: プロセスが停止した場合、常に再起動します。 -
RestartSec=5s
: 再起動までの待機時間を5秒に設定します(必要に応じて調整可能)。
-
3. 設定のリロードと適用
設定を変更したら、systemdの設定をリロードして、NGINXサービスを再起動します。
コマンド:
sudo systemctl daemon-reload
sudo systemctl restart nginx
4. NGINXの自動起動設定の確認
NGINXがサーバー起動時に有効になるよう、サービスが有効になっているか確認します。
コマンド:
sudo systemctl enable nginx
5. 設定の確認
再起動設定が正しく反映されているか確認します。
コマンド:
systemctl show nginx | grep Restart
期待される出力:
Restart=always RestartSec=5s
6. 動作確認
NGINXプロセスを意図的に終了させて、再起動されるか確認します。
コマンド:
sudo pkill nginx
数秒後、再起動されたことを確認できます:
systemctl status nginx
補足
-
Restart
オプションには他にも以下の設定があります:-
no
: 再起動しない(デフォルト設定)。 -
on-failure
: エラー終了時のみ再起動。 -
always
: 常に再起動。
-
- NGINXの設定ファイル(
nginx.conf
)に問題がある場合、再起動が失敗する可能性があるため、事前に設定ファイルのテストを行うことが推奨されます。sudo nginx -t
この方法で、NGINXプロセスが意図せず終了した場合でも自動で再起動するように設定できます。