linux服务器用脚本一键部署java项目,一键启动停止重启jar包,非常适用于springboot项目,也可更改启动参数管理任意脚本、定时任务,一键启动停止重启脚本,使用非常简单,先贴上shell脚本代码
#!/bin/sh
#author:jiangya
#date:2020-10-21
#获取脚本所在完整路径
current_path=$(cd "$(dirname ${BASH_SOURCE})";pwd)
#获取脚本名称
App_NAME=$(basename ${BASH_SOURCE})
JAR_NAME=$App_NAME\.jar
#PID 代表是PID文件
PID=$current_path/$App_NAME\.pid
#使用说明,用来提示输入参数
usage() {
echo "请使用: ${App_NAME} [start|stop|restart|status]来运行"
exit 1
}
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep $JAR_NAME|grep -v grep|awk '{print $JAR_NAME}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动方法
start(){
echo "===========启动时间================"
echo $(date "+%Y-%m-%d %H:%M:%S")
is_exist
if [ $? -eq "0" ];
then
echo ">>> 雷特java组项目:${App_NAME} 已经在运行,PID=${pid} <<<"
else
echo ">>> 雷特java组项目:$App_NAME 正在启动,请稍后...... <<<"
nohup java -Xms64M -Xmx1G -jar $current_path/$JAR_NAME >$current_path/$App_NAME.log 2>&1 &
echo $! > $PID
echo ">>> 雷特Java组项目: ${App_NAME} 启动PID为=$(cat $PID),项目正在跑代码,请稍后查看启动是否成功! <<<"
fi
}
#停止方法
stop(){
echo "===========停止时间================"
echo $(date "+%Y-%m-%d %H:%M:%S")
#is_exist
pidf=$(cat $PID)
#echo "$pidf"
echo ">>> 雷特Java组项目:$App_NAME的PID = $pidf进程正在尝试优雅停止...... <<<"
kill $pidf
rm -rf $PID
sleep 2
is_exist
if [ $? -eq "0" ]; then
echo ">>> 雷特Java组项目:$App_NAME 的PID = $pidf优雅停止失败,再次尝试强制停止...... <<<"
kill -9 $pid
sleep 2
echo ">>> 雷特Java组项目:$App_NAME 的PID = $pidf进程已强制停止...... <<<"
else
echo ">>> 雷特Java组项目:${App_NAME} 的PID = $pidf进程已优雅停止运行 <<<"
fi
}
#输出运行状态
status(){
is_exist
if [ $? -eq "0" ]; then
echo ">>> 雷特Java组项目:${App_NAME} 正在运行 PID 是 ${pid} <<<"
else
echo ">>> 雷特Java组项目:${App_NAME} 没有运行 <<<"
fi
}
#重启
restart(){
echo "===========重启时间================"
echo $(date "+%Y-%m-%d %H:%M:%S")
stop
start
}
#根据输入参数,选择执行对应方法,不输入则执行使用说明
case "$1" in
"start")
start
;;
"stop")
stop
;;
"status")
status
;;
"restart")
restart
;;
*)
usage
;;
esac
exit 0
新建一个文件,用文本编辑器复制以上脚本代码贴进去,文件名不要有后缀,如果用windows文本编辑器编辑过,在复制到linux后需要vim,set ff=unix,改为unix编码
比如我要运行的项目:
- 以rate_pz_web为例,将脚本复制到jar包同级目录,脚本名称与项目名称保持一致
- 给脚本执行权限
chmod +x rate_pz_web
- 启动(支持绝对路径的方式启动):
./rate_pz_web start
停止:
./rate_pz_web stop
重启
./rate_pz_web restart
查看运行状态
./rate_pz_web status
- 如果需要修改运行参数
vim rate_pz_web
按i修改这行代码即可,保存:“esc”,“shift+:”,“wq”回车。
打印的中文提示可以按自己的需求更改