如何编写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 配置中指定的时间间隔。

如果您需要一个更微妙的程序,您可以使用几个服务器监控程序之一(SupervisorUpstart监控)。

埃特尔·斯维尔德洛夫