【发布时间】:2022-01-13 09:26:06
【问题描述】:
我想创建一个脚本来持续检查进程状态是否运行。如果进程不会运行,脚本应该捕获它并在几秒钟内重新启动它。如何在系统上连续运行此脚本以及如何通过 ---> 更改脚本 要点:它应该作为参数:尝试重新启动服务之间等待 1 秒,尝试次数 2 和 3 - 生成事件日志。 Nginx 是该过程的一个示例。可以更换。
#!/bin/bash
SERVICE="nginx"
if pgrep -x "$SERVICE" >/dev/null
then
echo "$SERVICE is running"
else
echo "$SERVICE stopped"
# start nginx if stopped
echo "$SERVICE starting"
systemctl start $SERVICE
fi
【问题讨论】:
-
为什么不使用 systemd?
-
@wowbagger 我已经在脚本中使用了 systemctl。你是什么意思?我只想创建 bash 脚本。也许我会集成到 cron 以在操作系统上连续运行。但是参数我需要一些建议。
-
@Dylan_ 我猜 wowbagger 的意思是您可以配置 Nginx systemd 服务,使其在意外停止或崩溃时自动重启。您无需为此编写自己的脚本。
-
@Kent Nginx 是一个示例服务。它应该是可更换的。我需要用 bash 脚本来做。