sh启动jar包的shell脚本

145次阅读
没有评论

平时在 Linux 里运行 jar 包时总得用 java -jar xx.jar 挺麻烦的,于是搞个 sh 脚本去启动重启 jar 包。

sh 脚本需要实现四个功能:启动、停止、重启、查看状态。

以下是脚本代码:

#!/bin/bash
# 
# jar 脚本, 有启动,重启,停止功能
#
#
# jvm 参数
jvm_xms=-Xms512m

jvm_xmx=-Xmx512m

# jar 名称
jar_name=app.jar
# jar 目录
jar_dir=/root/test

# 进程 id
pid=

# 启动
start() {
    # 获取进程 id
    getpid
    # 如果进程 id 存在,且对应的文件夹也存在
    if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
        echo "$jar_name 正在运行,进程 id 是 $pid"
    else 
        echo "启动:$jar_name"
        nohup java -server $jvm_xms $jvm_xmx -jar $jar_dir/$jar_name > /dev/null 2>&1 &
    fi
}

# 停止
stop() {
    # 获取进程 id
    getpid
    # 如果进程 id 存在,且对应的文件夹也存在
    if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
        # 杀死进程 id
        kill -KILL $pid >/dev/null 2>&1
        # 睡眠 10 秒,单位微秒
        usleep 100000
        echo "$jar_name 已停止"
    else
        echo "$jar_name 未运行"
    fi
}

# 重启
restart() {
    stop
    start
}

# 进程 id 函数, 获取进程 id
getpid() {pid=`ps -ef|grep "$jar_dir/$jar_name"|grep -v grep|awk '{print $2}'`
}

# 启动参数
case "$1" in
    start)
        echo "------------------------ 执行启动 ------------------------"
        start
        ;;
    stop)
        echo "------------------------ 执行停止 ------------------------"
        stop
        ;;
    restart)
        echo "------------------------ 执行重启 ------------------------"
        stop
        start
        ;;
    status)
        echo "------------------------ 执行查看 ------------------------"
        getpid
        if [ "$pid" != "" ] && [ -d /proc/$pid ]; then
            echo "$jar_name 正在运行,进程 id 是 $pid"
        else
            echo "$jar_name 已停止"
        fi
        ;;
    *)
        echo $"参数提示: $0 {start|stop|restart|status}"
esac


然后将以上脚本保存为 xxxx.sh. 给脚本授权 chmod +x /root/xxxx.sh

最后执行脚本进行测试

sh 启动 jar 包的 shell 脚本
正文完
 0
板面杂货铺
版权声明:本站原创文章,由 板面杂货铺 于2023-06-20发表,共计1198字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。