使用Linux脚本文件实时监测 jar 的运行状况,运行停止后自动重启。
要监测 jar 包是否在运行,需要查看当前进程中是否有该进程,没有的话需要重启。
#!/bin/sh
#判断指定进程是否存在
result1=`ps -ef | grep -w xxx | grep -v grep | wc -l`
result2=`ps -ef | grep -w yyy | grep -v grep | wc -l`
if [ $result1 -le 0 ]; then
#不存在, 后台重启并写入临时日志文件
nohup /usr/java/jdk1.8.0_251-amd64/bin/java -jar /usr/java/jar/app/xxx.jar > /usr/java/jar/app/xxx.txt &
elif [ $result2 -le 0 ]; then
#不存在, 后台重启并写入临时日志文件
nohup /usr/java/jdk1.8.0_251-amd64/bin/java -jar /usr/java/jar/app/yyy.jar > /usr/java/jar/app/yyy.txt &
fi
该 sh 需要手动执行,为了实时监测,可以通过 crontab 来定期执行。
Linux crontab 是用来定期执行程序的命令。当安装完成操作系统后,默认便会启动此任务调度命令。
该命令会每分钟定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。
在Linux中输入:
crontab -e
编写如下指令,意思为每隔 3 秒执行一次:
*/1 * * * * /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 3 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 6 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 9 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 12 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 15 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 18 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 21 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 24 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 27 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 30 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 33 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 36 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 39 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 42 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 45 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 48 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 51 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 54 && /usr/java/jar/monitorApp.sh
*/1 * * * * sleep 57 && /usr/java/jar/monitorApp.sh
注:crontab 不会读取系统的环境变量,需要在 monitorApp.sh 中将 java 命令的绝对路径写上。
本文由 caroly 创作,如果您觉得本文不错,请随意赞赏
采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载 / 出处外,均为本站原创或翻译,转载前请务必署名
原文链接:https://caroly.fun/archives/linux监测jar运行状况
最后更新:2021-04-29 16:08:55
Update your browser to view this website correctly. Update my browser now