【运维】Linux进程守护进程被杀自动重新启动jar

#!/bin/bash                                                                                                                                                                                               
                                                                                                                                                                                                          
while true                                                                                                                                                                                                
do  
    # 检查程序是否正在运行                                                                                                                                                                                                      
    pid=`ps -ef | grep javaServer | grep -v grep | awk '{print $2}'`                                                                                              
    if kill -0 ${pid} > /dev/null 2>&1                                                                                                                                                                    
    then                                                                                                                                                                                                  
        echo "pid=${pid} is running"                                                                                                                                                                      
        sleep 60                                                                                                                                                                                          
    else
        # 执行重启命令                                                                                                                                                                                                  
        echo "javaServerStartUp is not running, restarting"                                                                                                       
        sh /data/jar/start.sh                                                                                                                                   
        sleep 30                                                                                                                                                                                          
    fi                                                                                                                                                                                                    
done

上述脚本会每隔 30 秒检查一次 javaserver 进程是否正在运行。如果未运行,则执行重启命令。在执行脚本之前,你需要先确认 javaserver 的启动命令,并修改脚本中的相应部分。

可以将该脚本保存为一个文件(例如 restart_oap.sh),并使用 nohup 命令后台运行:
 

nohup bash restart_oap.sh > /dev/null 2>&1 &

这样,即使你关闭终端窗口,脚本也会继续在后台运行,并定时监控重启 javaServer。

猜你喜欢

转载自blog.csdn.net/G971005287W/article/details/131148085