用于在服务出现故障/崩溃时重新启动服务的 Shell 脚本
由于各种原因,进程崩溃/关闭是很常见的,您可以调查并修复问题,但这可能需要一些时间。
然而,为了减少停机时间并提高可用性,您可以立即做的一件事是在进程出现故障时自动重新启动进程。
让我们在高速公路上实现这一点 – shell 脚本
使用以下 shell 脚本运行 crontab 将每 15 分钟检查一次服务(间隔可调),如果发现服务没有运行则启动它们。是不是很酷?
本文提供了两个在服务出现故障时启动服务的示例。
如果您使用的是 CentOS/RHEL 7 或更高版本,另请查看这篇文章,其中介绍了如何使用 systemd 重新启动。

如果 MySQL、PHP-FPM 和 Nginx 出现故障,自动重新启动它们
几周前,当我使用EasyEngine将 Geek Flare 迁移到DigitalOcean时,MariaDB 在一周内崩溃了两次。

一大早就崩溃了,宕机了3个多小时,不太好。这是我的博客,所以它不会以任何方式影响我,但我仍然感觉很糟糕。
现在,演出时间到了…
- 使用 vi 编辑器在所需位置创建文件(对于本演示,它位于 /opt/startifdown.sh 下)。
- 将以下脚本复制并粘贴到文件中并保存
#!/bin/bash
#Scripts to start services if not running
ps -ef | grep nginx |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/nginx start > /dev/null
fi
ps -ef | grep php5-fpm |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/php5-fpm start > /dev/null
fi
ps -ef | grep mysql |grep -v grep > /dev/null
if [ $? != 0 ]
then
/etc/init.d/mysql start > /dev/null
fi- 将文件权限更改为可执行
chmod 755 startifdown.sh通过手动测试来验证脚本是否可执行。
您可以停止该服务并检查它是否使用脚本启动。一旦您满意,您可以将其放入 cron 中并每 15 分钟运行一次。
*/1 * * * * /opt/startifdown.sh如果您需要一些关于更改间隔时间的灵感,请参阅我的 crontab 文章。
现在,这个小脚本将负责在服务崩溃时启动服务,因此您不会有 3 小时的停机时间。
好多了!

如果 WebSphere DMGR、Nodeagent 和 JVM 出现故障,则自动重新启动它们
创建包含以下脚本的文件。将其命名为startwasifdown.sh。
#!/bin/bash
#Scripts to start services if not running
#Specify DMGR Path Here
DMGR=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01
#Specify Profile Path Here
Profile=/opt/IBM/WebSphere/AppServer/profiles/AppSrv01
ps -ef | grep dmgr |grep -v grep > /dev/null
if [ $? != 0 ]
then
$DMGR/bin/startManager.sh > /dev/null
fi
ps -ef | grep nodeagent |grep -v grep > /dev/null
if [ $? != 0 ]
then
$Profile/bin/startNode.sh > /dev/null
fi
ps -ef | grep server1 |grep -v grep > /dev/null
if [ $? != 0 ]
then
$Profile/bin/startServer.sh server1 > /dev/null
fi注意:根据您的环境更改路径并添加多个 JVM 的行。
- 将文件权限更改为可执行
chmod 755 startwasifdown.sh一旦您手动测试并对其感到满意,您可以将其放入 cron 中并每 15 分钟运行一次或以您方便的方式运行。
*/1 * * * * /opt/ startwasifdown.sh这只是自动化工作的指南。
喜欢自动化?了解bash shell 脚本。




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

