Index / Shell

Shell 脚本重启项目

原文:https://ichochy.com/posts/shell/20191016.html

每次发打包好项目后都需要手动重启项目,写个Shell脚本一键重启项目

Shell 脚本

#!/bin/bash
  
while getopts "n:p:" arg
do
    case $arg in
        n)
                echo "NAME's arg:$OPTARG"
                NAME=$OPTARG
            ;;
        p)
                echo "PORT's arg:$OPTARG"
                PORT=$OPTARG
            ;;
    esac
done

PROCESS=echo | lsof  -i TCP:$PORT | grep LISTEN | awk '{print $2}'
if [ $PROCESS ]; then
kill -9 $PROCESS
echo kill $NAME:$PROCESS, restart
fi
cd jenkins
cp jar/.tmp/$NAME-0.0.1-SNAPSHOT.jar jar/
nohup java -jar -Xms128m -Xmx256m jar/$NAME-0.0.1-SNAPSHOT.jar --eureka.url="127.0.0.1:9100/eureka/" --profile="dev"  >logs/$NAME.log 2>&1 &
echo $NAME starting

Shell 说明

lsof:通过端口获取进程
getopts:实现Shell脚本多参数
nohup:后台启动项目

Shell 运行

sh -n project -p 8080