linux-shell脚本启动jar包,并保存日志到文件中,以及如何处理 ‘$'\r': 未找到命令’
1.start.sh
#!/bin/bash
#jar包文件路径及名称(目录按照各自配置)
APP_NAME=/home/linxiadp/resourceCode/app/dataextract.jar
#日志文件路径及名称(目录按照各自配置)
LOG_FILE=/home/linxiadp/resourceCode/app/out.log
#查询进程,并杀掉当前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
dcho '文件存在,开始启动此程序...'
# 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
nohup java -jar $APP_NAME > $LOG_FILE 2>&1 &
#实时查看启动日志(此处正在想办法启动成功后退出)
tail -f $LOG_FILE
#输出启动成功(上面的查看日志没有退出,所以执行不了,可以去掉)
#echo '$APP_NAME 启动成功...'
else
echo '$APP_NAME 文件不存在,请检查。'
fi
2.stop.sh
#!/bin/bash
#jar包文件路径及名称(目录按照各自配置)
APP_NAME=/home/linxiadp/resourceCode/app/dataextract.jar
#日志文件路径及名称(目录按照各自配置)
LOG_FILE=/home/linxiadp/resourceCode/app/out.log
#查询进程,并杀掉当前jar/java程序
pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
kill -9 $pid
echo "$pid进程终止成功"
3.可能碰到的问题
linux环境跑上面脚本的时候可能会碰到 -- ‘$'\r': 未找到命令的问题,
解决办法:https://www.cnblogs.com/Mrq-t/p/12886520.html