Linux中停止jar进程及启停脚本

483 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

我们在juejin.cn/editor/draf… 说到了jar包的启动,本次我们说jar包的停止。 我们在启动项目后,可以如果想更新环境,此时我们就需要替换jar包重新启动,注意:jar包直接替换或者删除是不影响服务的正常运行,如果想更换测试新的内容,此时我们就需要替换后重启,就是先将启动的进程kill,然后重新启动新的jar包, 1.查看启动的jar包进程:

ps -ef | grep x.jar

image.png 红框所示即为进程ID

2.关闭进程的命令如下:

kill -9 进程ID

注意:kill -9为强制关闭,kill 进程ID为正常关闭

3.我们也可以直接查看进程并关闭

ps -ef |grep a.jar | grep -v grep |awk '{print $2}'|xargs kill -9

4.关闭整个目录下所有进程

ps -ef |grep /aifs01/test | grep -v grep |awk '{print $2}'|xargs kill -9

上述命令我们可以将该/aifs01/test路径下的所有进程都关闭

5.创建启停脚本 熟悉了前面的启停命令,为了避免每次都输入繁琐的命令,我们可以将内容整合到一个脚本,通过脚本来进行启停,创建start.sh

touch start.sh

或者可以直接

vim start.sh

将如下内容放到脚本文件里面:

#!/bin/sh

#切换到脚本所在的路径

SERVER=$(cd `dirname $0`; pwd)

cd $SERVER

JAR_NAME=`ls *.jar`

start(){

   java    -Xmx1024m -Xms1024m -jar  -Dspring.config.location=./config/bootstrap.properties $SERVER/*.jar    >$SERVER/uc.log &

    echo $! > $SERVER/server.pid

    echo  "=================================SUCCESS============================================"

}

stop(){

    echo "stop project..."

    kill -9  `cat $SERVER/server.pid`

    rm -rf $SERVER/server.pid

    echo "stop project end..."

}

restart(){

    stop

    sleep 2

    start

}

case "$1" in

    start)

    start

    ;;

    stop)

    stop

    ;;

    restart)

    restart

    ;;

    *)  

   echo "请输入正确的参数"

   echo "start      :启动"

        echo "stop       :停止"

   echo "restart    :重启"

    ;;

esac

注意:使用上述脚本在使用的时候需要和jar包同级,且同一个文件夹里面只能有一个jar包,否则会启动失败 输入后保存退出,然后给该脚本赋予可执行权限

chmod +x start.sh

脚本启动命令:

./start.sh start

脚本停止命令:

./start.sh stop

脚本重启命令:

./start.sh restart