Linux中所谓脚本,就是类似于Windows系统中的批处理,只不过Linux中以sh作为扩展名,而Windows系统以bat作为扩展名
一、JAR启动脚本
#!/bin/sh
# java环境
java_env="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64/jre/bin/java"
# 应用路径
app="./test.jar"
# 日志路径
log_file="log.log"
# 启动JAVA程序
echo "start application \"${app}\""
nohup $java_env -jar $app > $log_file 2>&1 &
# 查看日志
tail -f log.log
备注:默认情况下使用yum指令安装的openjdk 一般都在下述目录
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.392.b08-2.el7_9.x86_64/
如果不清楚,可以通过which java查找
二、JAR停止脚本
#!/bin/sh
# 程序对应名
app_name="test.jar"
echo "star interrupt application \"$app_name\""
# 查找程序名对应pid
pid=$(pgrep -f $app_name)
# pid字符长度大于0
if [ -n "$pid" ]
then
echo "stop pid ${pid} app_name ${app_name}"
# 关闭程序
kill -9 $pid
echo "${app_name} was stop"
else
# 未找到程序
echo "application \"$app_name\" pid not found"
fi
echo "script end"
三、执行脚本常见错误处理
1)坏的解释器:文本文件忙
原因:一般是Windows系统与Linux系统换行符不一样导致的,Window系统\r\n ,Linux系统\n
解决方法:sed 's/\r//' -i start.sh