平时我们启动jar包使用下面的方式:
nohup java -jar ${APP_NAME} > server.log 2>&1 &
但是需要关闭重启的时候,需要先找到之前运行的进程,然后杀掉,然后再启动。下面我们使用脚本的方式,方便部署项目。效果如下:
./start-server.sh start #启动./start-server.sh restart #重启./start-server.sh stop #停止./start-server.sh status #查看状态
脚本代码:
复制下面的代码,保存到文本文档里,后缀改为.sh,比如start-server.sh
#!/bin/bash#这里可替换为你自己的jdk路径export JAVA_HOME=/usr/local/jdk1.8.0_271export JRE_HOME=/$JAVA_HOME/jreexport CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jarexport PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin#这里可替换为你自己的执行程序,后面的代码无需更改APP_NAME=/usr/local/demo.jar#使用说明,用来提示输入参数usage(){echo "Usage: sh shell-start-server.sh [start|stop|restart|status]"exit 1}#检查程序是否在运行is_exist(){pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}'`#如果不存在返回1,存在返回0if [ -z "${pid}" ]; thenreturn 1elsereturn 0fi}#启动方法start(){is_existif [ $? -eq 0 ]; thenecho "${APP_NAME} is already running. pid=${pid}"elsenohup java -jar ${APP_NAME} > server.log 2>&1 &fi}#停止方法stop(){is_existif [ $? -eq "0" ]; thenkill -9 $pidelseecho "${APP_NAME} is not running"fi }#输出运行状态status(){is_existif [ $? -eq "0" ]; thenecho "${APP_NAME} is running. Pid is ${pid}"elseecho "${APP_NAME} is NOT running."fi}#重启restart(){stopsleep 5start}#根据输入参数,选择执行对应方法,不输入则执行使用说明case "$1" in"start")start;;"stop")stop;;"status")status;;"restart")restart;;*)usage;;esac
如果觉得《java启动jar包脚本》对你有帮助,请点赞、收藏,并留下你的观点哦!