当服务停止时如何自动重启?

重启服务的Shell脚本,如果服务崩溃或停止

由于各种原因,进程经常会崩溃或停止,您可以调查并解决问题,但这可能需要一些时间。

然而,有一件事您可以立即做的,以减少停机时间以获得更好的链接_0是自动重新启动进程。

让我们通过高速公路来实现这个目标-Shell脚本

您可以使用以下Shell脚本通过链接_1运行,它将每隔15分钟(您可以调整时间间隔)检查服务,并在发现未运行时启动。听起来酷吗?

在本文中,我将给出两个在服务停止时启动的示例。

如果您使用的是CentOS/RHEL 7+,则也可以检查链接_2以进行重新启动。

如果停止则自动重新启动MySQL、PHP-FPM、Nginx

几周前,我将Geek Flare移至链接_3与链接_4,MariaDB在一周内崩溃了两次。

您可以看到它在早上崩溃了,停机时间超过3小时,这不好。这是我的博客,没有$$$的影响,但我仍然为此感到难过。

好的,现在是表演时间…

  • 在您想要的位置使用vi编辑器创建一个文件(在此演示中,我将它放在/opt/startifdown.sh下)
  • 复制并粘贴以下脚本到文件中并保存
#!/bin/bash
#如果未运行则启动服务的脚本
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

如果需要更改时间间隔,可以参考我的链接_5。

现在,这个小脚本将处理崩溃的链接_6,并且我将不会有那3小时的停机时间。

好多了!

如果停止则自动重新启动WebSphere DMGR、Nodeagent、JVM

创建一个带有以下脚本的文件-我将其命名为startwasifdown.sh

#!/bin/bash
#如果未运行则启动服务的脚本
#在此处指定DMGR路径
DMGR=/opt/IBM/WebSphere/AppServer/profiles/Dmgr01
#在此处指定配置文件路径
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

这只是一个为您自动化事务的指南。

喜欢自动化吗?了解链接_7。

类似文章