项目打包:xxx.jar
项目所在路径:/usr/local/Service
1.新建文件start.sh
#!/bin/bash
app_name=xxx.jar
log_file=xxx.log
echo 将要执行jar包:${app_name}
pid=`ps -ef |grep "${app_name}" | grep -v grep | awk '{print $2}'`
echo "判断jar包${app_name}文件是否存在,如果存在执行${app_name}包"
if test -e $app_name
then
echo '文件存在,开始启动此程序...'
read -p "请输入你要的操作,1 启动、2重启、3停止:" input
if (($input==1));
then
echo "start project"
# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
#nohup java -jar "${app_name}" > ${log_file} 2>&1 &
# 启动jar包,指定jdk,dubug启动 远程断点端口为1000 项目所在路径地址 服务端口 打开或指向同一个日志文件
nohup /usr/java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=1000,suspend=n -jar /usr/local/Service/xxx.jar --server.port=2000 >/dev/null 2>&1 &
tail -f ${log_file}
elif (($input==2));
then
echo "restart project"
echo 要杀死原来的进程$pid
kill -9 $pid
echo "$pid进程终止成功"
#kill -9 `ps -ef |grep "${app_name}" | grep -v grep | awk '{print $2}'`
sleep 2
nohup /usr/java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=1000,suspend=n -jar /usr/local/Service/xxx.jar --server.port=2000 >/dev/null 2>&1 &
#echo "$app_name 启动成功..."
tail -f ${log_file}
elif (($input==3));
then
echo "stop project"
echo 要杀死原来的进程$pid
kill -9 $pid
echo "$pid进程终止成功"
else
echo "输入有误"
fi
else
echo "$app_name 文件不存在,请检查。"
fi
2. 执行此脚本
1.赋可执行权限
chmod 777 start.sh #任何人可执行
2.如果执行脚本报错:-bash: ./run.sh: /bin/bash^M: bad interpreter: No such file or directory
原因是 文件的格式是dos,修改为unix
①编辑start.sh ---- vim start.sh
②按 ESC键 再按shift+冒号 输入 set ff 回车 可以看见 该文件的格式 fileformat=dos
③按shift + 冒号 输入 set ff=unix 回车
④按shift + 冒号 输入 wq
:w (冒号是英文的哦,保存当前正在编辑的文件),
:q (冒号也是英文的哦,退出,当前正在编辑的文件,如果退出之前没有保存,会提示你让你保存)
:q! 表示强制退出
3.执行脚本 ./start.sh