如何编写Bash脚本来重新启动服务器程序
来自菜鸟教程
为了确保最重要的程序尽可能保持在线(即使在服务器崩溃或重新启动之后),可以创建一个简短的 bash 脚本来检查程序是否正在运行,如果没有,则启动它。 通过使用 cron 来安排脚本定期执行,我们可以确保程序在出现故障时重新启动。
Bash 脚本
此过程的第一步是创建脚本本身。 有各种程序,例如 upstart、supervisor 和 monit,能够以非常细微的方式启动和监控虚拟专用服务器上的应用程序——这个 bash 脚本将简单地提供一个 on 开关。
下面是一个示例脚本,如果发现它关闭,它将启动 apache。
nano launch.sh
#!/bin/sh ps auxw | grep apache2 | grep -v grep > /dev/null if [ $? != 0 ] then /etc/init.d/apache2 start > /dev/null fi
保存脚本后,您必须授予它可执行权限才能运行它:
chmod +x launch.sh
Apache 可以替换为任何需要的应用程序。 如果您想为各种应用程序设置脚本,您可以为每个应用程序创建一个新脚本,将其放置在 cron 文件中自己的行中。
Cron 设置
有了脚本,我们需要设置它运行的时间表。 cron 实用程序允许我们安排脚本应该执行的时间间隔。 首先打开 cron 文件:
crontab -e
Cron 一开始就详细解释了计时系统是如何工作的。
一旦您知道您希望脚本运行的频率,您就可以在相应的行中写入。
脚本可以在 cron 中运行的最常见的时间是每分钟。 如果你想设置这么小的增量,你可以使用这个模板:
* * * * * ~/launch.sh
每五分钟将设置如下:
*/5 * * * * ~/launch.sh
看更多
设置这个简单的脚本将使程序在因任何原因关闭后保持启动。 这很方便,因为它将确保程序停机的最长时间是您在 cron 配置中指定的时间间隔。
如果您需要一个更微妙的程序,您可以使用几个服务器监控程序之一(Supervisor、Upstart 或 监控)。