shell检查并启动Java程序

来源:互联网 发布:2015耽美网络电视剧 编辑:程序博客网 时间:2024/06/10 03:13

场景

想在服务器(Linux)上面运行自己写的Jar程序时,通常做法是

java -jar config.jar#或者让其后台启动nohup java -jar config.jar &

如此一来程序就能启动。不过这样不够人性化或者说不够优雅,更好的方式应该是先判断config.jar是否已经在运行,只有在未运行的情况下才执行启动。

方案

#!/bin/sh#NAME变量填写jar包的名字,尽可能唯一NAME="config.jar"RUN=0#循环,为了让脚本一直运行监控while [ $RUN -eq 0 ]do    DTTERM=`jps | grep $NAME`       #匹配程序    if [ -n "$DTTERM" ]    then          echo "PID=$( jps | grep "$NAME") is running..."        RUN=$(( $RUN + 1 ))    #正确输入信息到日志文件    else        filepath=$(cd "$(dirname "$0")"; pwd)        echo "$NAME is not start! Going to start(dir=$filepath)..."        echo > $filepath/log.out && nohup java -jar $filepath/$NAME > $filepath/log.out &    fi    sleep 2    # 每次监测时间60秒doneexit 0

将上面的代码保存为start.sh,与config.jar同一目录,结构如下

这里写图片描述

并赋予权限

chmod +x start.sh

然后执行即可

root@xxxxxx# sh start.shPID=4232 config.jar is running...
1 0