写一个linux下的进程守护脚本

发布时间:2024年01月24日

分享一个一直在用的在linux下守护进程的脚本,非常稳定。以一个java开发的jar包为例,

假设:

jar包名为:demo-system-web.jar

守护程序存储于:/usr/local/demo

输出日志:/usr/local/demo/carefor.log

守护程序代码如下:

#!/bin/sh

while true
do
A=`ps -ef|grep demo-system-web.jar | wc -l`
if [ $A -eq 1 ];then
? ? echo $(date +%F%n%T) "Restart ?Services" >> /usr/local/demo/carefor.log
? ? nohup java -jar ?demo-system-web.jar > demo-system-web-temp.txt &
? ? sleep 30
else
? ? echo $(date +%F%n%T) "Service Running" >> /usr/local/demo/carefor.log
fi

sleep 30
done

代码说明:

#!/bin/sh ? ? ? ? ?###shell脚本标准格式

while true ? ? ? ?###无限循环
do
A=`ps -ef|grep demo-system-web.jar | wc -l`? ? ? ? ?###检查进程状态的代码
if [ $A -eq 1 ];then ? ? ? ?###判断进程是否存在
????echo $(date +%F%n%T) "Restart ?Services" >> /usr/local/demo/carefor.log ? ? ? ?###不存在先记录日志
????nohup java -jar ?demo-system-web.jar > demo-system-web-temp.txt & ? ? ? ?###再重启服务,这段代码自己根据实际启动方式写
????sleep 30 ? ? ? ?###等待30秒
else
????echo $(date +%F%n%T) "Service Running" >> /usr/local/demo/carefor.log ? ? ? ?###进程正常,记录日志即可
fi

sleep 30 ? ? ? ?###等待30秒,这个根据实际情况写
done

守护某大型服务1年后总结,效果很好,守护日志很小,一年半载的删一下即可。

文章来源:https://blog.csdn.net/icbyboy/article/details/135830962
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。