要求:每次启动前,杀掉原来的进程。
脚本如下:
#!/bin/bash
#jar包文件路径及名称(目录按照各自配置)
APP_NAME=/usr/local/jar/demo.jar
#查询进程,并杀掉当前jar/java程序
pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
kill -9 $pid
echo "$pid进程终止成功"
sleep 2
#判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
if test -e $APP_NAME
then
echo '文件存在,开始启动此程序...'
# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
nohup java -jar $APP_NAME&
echo '$APP_NAME 启动成功...'
else
echo '$APP_NAME 文件不存在,请检查。'
fi
#!/bin/bash是指此脚本使用/bin/bash来解释执行。
编写好保存为start.sh文件。
启动
上传到linux执行./start.sh,出现报错:-bash: ./a.sh: /bin/bash^M: bad interpreter: No such file or directory。
原因:原因是windows下的文件是dos格式,即每一行结尾以\r\n来标识,而linux下的文件是unix格式,行尾则以\n来标识。
解决方法:vim <filename>,编辑文件,执行“: set ff=unix”,将文件设置为unix格式,然后执行“:wq”,保存退出,重新执行start.sh文件,启动成功。