假如今天我要讓 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 ,不然服務還是不會起來

Related posts 相關文章
apache httpd 2.4.58 有些安全性更新
More...
Apache 有 path traversal 目錄遍歷的漏洞
More...
Centos7 服務無法啟動 enable or restart failed
More...
使用 systemctl restart named.service 卻啟動失敗
More...

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。