Linux jar包启动或停止脚本
1. 脚本代码
创建脚本文件 execute.sh
2. 脚本代码
#!/bin/sh
## service name
SERVICE_ROOT=$(dirname $(dirname "$PWD"))
SERVICE_DIR=$(cd $(dirname $0); pwd)
SERVICE_NAME=test
JAR_NAME=$SERVICE_NAME\.jar
PID=$SERVICE_NAME\.pid
cd $SERVICE_DIR
case "$1" in
start)
nohup java -Xms256m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=1024m -jar $JAR_NAME > $SERVICE_NAME.log 2>&1 &
echo $! > $SERVICE_DIR/$PID
echo "=== start $SERVICE_NAME"
;;
stop)
kill `cat $SERVICE_DIR/$PID`
rm -rf $SERVICE_DIR/$PID
echo "=== stop $SERVICE_NAME"
sleep 5
P_ID=`ps -ef | grep "$SERVICE_NAME" | grep -v grep | grep -v "$0" | awk '{print $2}'`
if [ "$P_ID" == "" ]; then
echo "=== $SERVICE_NAME process not exists or stop success"
else
echo "=== $SERVICE_NAME process pid is:$P_ID"
echo "=== begin kill $SERVICE_NAME process, pid is:$P_ID"
kill -9 $P_ID
fi
;;
restart)
$0 stop
sleep 2
$0 start
echo "=== restart $SERVICE_NAME"
;;
*)
echo "-------------------------------------"
echo ""
echo "项目地址: ${SERVICE_DIR}/${JAR_NAME}"
echo ""
echo "你可以使用如下参数进行操作"
echo "start -启动当前项目"
echo "stop -停止当前项目"
echo "restart -重启当前项目"
echo ""
echo "-------------------------------------"
;;
esac
exit 0
3. 修改脚本
修改脚本中的jar包名称,在脚本:SERVICE_NAME=test.jar
位置,如:test.jar为 你当前的jar包名称
4. 部署使用
(1) 传入服务器中,和jar包放同级目录
(2) 执行命令 chmod +x execute.sh
(3) 执行命令 ./execute.sh start
启动jar服务
(4) 查看同级目录是否生成与jar包名称一样名字的log文件
执行命令 tail -f test.log
可查看启动日志
(5) 服务正常启动后,可执行 ./execute.sh stop
停止服务 或 ./execute.sh restart
重启服务