完整shell脚本监控.jar程序运行情况(自动重启加日志打印)

Shell脚本监控.jar服务运行并实现自启和日志记录

**前言:**第一次写shell脚本,需求是监控线上的.jar服务是否运行正常,因为最近随着数据访问量的增加发现服务器有时候会挂掉,当然已经排查了原因,但是为了能够保证服务能够一直正常的运行,所以需要一个shell脚本来监控服务是否正常。废话不多说,直接上shell脚本代码:

#!/bin/sh
jar_name="auth-0.0.1-SNAPSHOT.jar"
while true
do
	ps -ef | grep ${jar_name} | grep -v "grep"
	if [ $? -eq 0 ]
	then
		echo "auth-0.0.1-SNAPSHOT.jar already started!"
	else
		echo "auth-0.0.1-SNAPSHOT.jar has been restarted!"
		if [ ! -d "./log/netAuthServicLog/$(date +%Y%m%d)" ]
		then 
			mkdir -p ./log/netAuthServiceLog/$(date +%Y%m%d)
		fi
		log_name="./log/netAuthServiceLog/$(date +%Y%m%d)/log_$(date +%Y%m%d%H%M%S).txt"
		echo $log_name
		nohup java -Djava.security.egd=file:/dev/./urandom -jar auth-0.0.1-SNAPSHOT.jar &
	fi
sleep 10
done

下面通过这个shell脚本来分析一下它里面的语句的执行流程:

  1. "jar_name":代表你的jar的名称
  2. “$? -eq 0”:代表上一条语句执行的结果,0是成功,其它则表示失败
  3. if [ ! -d “./log/netAuthServicLog/$(date +%Y%m%d)” ]:这语句判断当前这个目录是否存在,不存在则创建这个目录
  4. mkdir -p ./log/netAuthServiceLog/$(date +%Y%m%d): p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。格式代表按照当前日期的年月日来创建目录。
  5. nohup java:启动你的jar服务
  6. 启动这个shell脚本
    (1)chmod u+x 名称 --给予可执行权限
    (2)nohup ./名称 --后台运行shell脚本

本篇到此结束,欢迎评论、点赞、留言~~

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值