栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

监听服务器jar运行,及重启脚本

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

监听服务器jar运行,及重启脚本

1、简单监听服务并重启脚本

业务需求,服务器要监听停止的jar服务,十分钟一次监听,出现停止就重启服务

#!/bin/bash
# “#!” 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行

# 变量
jarName=quartz_cgq_5501.jar
jarName_TWO=quartz_cgq_5506.jar
jarName_THREE=suoxin_quartz_cgq_5503.jar
#配置服务日志文件目录路径
LOG_FILE=/usr/local/kuangshan/jiaoben/quartz_cgq_5501.log
LOG_FILE_TWO=/usr/local/kuangshan/jiaoben/quartz_cgq_5506.log
LOG_FILE_THREE=/usr/local/kuangshan/jiaoben/suoxin_quartz_cgq_5503.log

jarUrl=/usr/local/kuangshan/

#webUrl=https://www.baidu.com/

# grep -v grep: 在文档中过滤掉包含有grep字符的行
# awk '{print $2}': 按空格截取第二个
#pid=`ps -ef|grep $jarName |grep -v grep| awk '{print $2}'`
# wc -l: jar包进程的数量
num=`ps -ef|grep $jarName |grep -v grep| awk '{print $2}'| wc -l`

MonitorFunction(){
    # 输出文本
    echo "[info]进入监控脚本"`date +'%Y-%m-%d %H:%M:%S'`
    # -eq: 等于
    if [[ $num -eq 0 ]]; then
        echo "[error]进程一,不存在,重启"`date +'%Y-%m-%d %H:%M:%S'`

        nohup java -jar  $jarUrl/$jarName > $LOG_FILE 2>&1 &
    else

       echo "[info]页面一,存在不用重启,time="`date +'%Y-%m-%d %H:%M:%S'`
    fi
}
MonitorFunction

numTwo=`ps -ef|grep $jarName_TWO |grep -v grep| awk '{print $2}'| wc -l`

MonitorFunctionTwo(){
    # 输出文本
    echo "[info]进入监控脚本二"`date +'%Y-%m-%d %H:%M:%S'`
    # -eq: 等于
    if [[ $numTwo -eq 0 ]]; then
        echo "[error]进程二,不存在,重启"`date +'%Y-%m-%d %H:%M:%S'`
		# >> /dev/null : jar包生成日志不打印到此脚本日志中
        nohup java -jar  $jarUrl/$jarName_TWO > $LOG_FILE_TWO 2>&1 &
    else
       echo "[info]页面二,存在不用重启,time="`date +'%Y-%m-%d %H:%M:%S'`
    fi
}
MonitorFunctionTwo
numThree=`ps -ef|grep $jarName_THREE |grep -v grep| awk '{print $2}'| wc -l`

MonitorFunctionThree(){
    # 输出文本
    echo "[info]进入监控脚本三"`date +'%Y-%m-%d %H:%M:%S'`
    # -eq: 等于
    if [[ $numThree -eq 0 ]]; then
        echo "[error]进程三,不存在,重启"`date +'%Y-%m-%d %H:%M:%S'`
		# >> /dev/null : jar包生成日志不打印到此脚本日志中
         nohup java -jar $jarUrl/$jarName_THREE > $LOG_FILE_THREE 2>&1 &
    else
       echo "[info]页面三存在不用重启,time="`date +'%Y-%m-%d %H:%M:%S'`
    fi
}
MonitorFunctionThree

2、凌晨重启jar服务脚本

#!/bin/bash
#执行bash shell配置
source ~/.bash_profile
#配置服务jar包文件路径
SERVICE_NAME=/usr/local/kuangshan/quartz_cgq_5501.jar
SERVICE_NAME_TWO=/usr/local/kuangshan/quartz_cgq_5506.jar
SERVICE_NAME_THREE=/usr/local/kuangshan/suoxin_quartz_cgq_5503.jar
#配置服务日志文件目录路径
LOG_FILE=/usr/local/kuangshan/jiaoben/quartz_cgq_5501.log
LOG_FILE_TWO=/usr/local/kuangshan/jiaoben/quartz_cgq_5506.log
LOG_FILE_THREE=/usr/local/kuangshan/jiaoben/suoxin_quartz_cgq_5503.log
#杀死指定jar包进程
ps -ef|grep $SERVICE_NAME |grep -v grep|cut -c 9-15|xargs kill -9
ps -ef|grep $SERVICE_NAME_TWO |grep -v grep|cut -c 9-15|xargs kill -9
ps -ef|grep $SERVICE_NAME_THREE |grep -v grep|cut -c 9-15|xargs kill -9
#启动jar包
nohup java -jar -Xmx10240m -Xms10240m -Xss2m $SERVICE_NAME > $LOG_FILE 2>&1 &
nohup java -jar -Xmx10240m -Xms10240m -Xss2m $SERVICE_NAME_TWO > $LOG_FILE_TWO 2>&1 &
nohup java -jar -Xmx10240m -Xms10240m -Xss2m $SERVICE_NAME_THREE > $LOG_FILE_THREE 2>&1 &
echo "服务重启时间:"`date`>>restart.out

 3、先测试脚本是否能运行

给脚本赋权

chmod a+x monitor.sh

运行脚本文件 

sh monitor.sh

如果出现下面错误,则输入命令,转化为unix格式

sed -i 's/r//' monitor.sh

3、使用crontab的定时任务

crontab -e

  0 0 * * *表示凌晨执行 

  */10 * * * * 表示十分钟执行一次

0 0 * * * bash /usr/local/kuangshan/jiaoben/springStart.sh >> /usr/local/kuangshan/jiaoben/log.log
*/10 * * * * bash /usr/local/kuangshan/jiaoben/monitor.sh >> /usr/local/kuangshan/jiaoben/logTWO.log

查看编辑的定时任务 

 crontab -l

crontab在线输出小工具

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1027700.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号