VSCodeのRemote-SSHでEC2に繋がらなくなった
かに
かにブログ
| 目的 | 説明 |
|---|---|
| ① php-fpm が落ちても⾃動復旧させる | Restart=always で、マスタープロセスがクラッシュ・強制終了・OOM Kill された場合でも systemd が 5 秒後に再起動します。 |
| ② 5 秒のクールダウンを設ける | RestartSec=5 により、連続クラッシュ時の “無限高速再起動” を防ぎます。 |
| ③ OOM Kill も拾う | OOMPolicy=restart で、メモリ不足による強制終了(OOM Killer)時も自動復帰します。 |
| ④ パッケージ更新で上書きされない | /etc/systemd/system/php-fpm.service.d/ 以下に置く “ドロップイン” は、RPM/DEB が配布する元の unit ファイルが更新されても残ります。 |
| ⑤ 元の unit を汚さない | /usr/lib/systemd/system/php-fpm.service を直接編集せずに済むため、管理が簡単 & 差分が明確です。 |
bashコピーする編集する# ① ディレクトリを作成(初回のみ)
sudo mkdir -p /etc/systemd/system/php-fpm.service.d
# ② override.conf を作成
sudo tee /etc/systemd/system/php-fpm.service.d/override.conf <<'EOF'
[Service]
# プロセスが停止したら必ず再起動
Restart=always
# 再起動まで 5 秒待つ
RestartSec=5
# メモリ不足で OOM Kill された場合も再起動
OOMPolicy=restart
EOF
反映してテスト
sudo systemctl daemon-reload # Unit を再読み込み
sudo systemctl restart php-fpm # 設定が効いた状態で再起動
sudo systemctl status php-fpm # active (running) を確認(子プロセスを kill して自動復旧するか確認)
pgrep -f "php-fpm: pool" | head -n1 | xargs sudo kill -9
sleep 6
systemctl status php-fpm | grep Active # → running になっていれば成功