假如今天我要讓 apache 服務失敗後自動重啟,就可以用 CentOS7 的 systemd 內鍵重啟 restart 程序的功能,如下
vi /usr/lib/systemd/system/httpd.service
[Service] # ... # 加入 Restart=on-failure # 什麼情況下重啟 "always", "on-success", "on-failure", "on-abnormal", "on-abort", or "on-watchdog" RestartSec=5s # 如果啟用了自動重新啟動服務,指定在嘗試重新啟動服務之前等待的時間 #ExecStartPre=/path/execstartpre.sh # 可以讓程序啟動前作什麼事 #ExecStartPost=/path/execstartpost.sh # 可以讓程序啟動後作什麼事
systemctl daemon-reload
測試 (前提是 httpd.service 是啟用的,如果沒有, restart 功能是無用的)
所以我直接用 ↓↓↓ 把 httpd 停掉
killall httpd
用另一視窗查看狀態
watch lsof -i :80
過了 5 秒 httpd 就自己起來了
假如 vi /usr/lib/systemd/system/httpd.service 改壞了, 記得還要 systemctl restart httpd.service ,不然服務還是不會起來
留言