每次发打包好项目后都需要手动重启项目,写个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