当服务停止时如何自动重启?
重启服务的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。