参考
防止原文被删所以记录下
拉起脚本实践
vim monitor.sh chmod a+x monitor.sh (给予可执行权限) 后台启动:nohup sh ./monitor.sh > /dev/null 2>&1 &
- ps -fe|grep ./monitor.sh
- kill -9 pid
#!/bin/bash
# chkconfig:2345 60 30
# description: Pull up the jar
## --------输入jar名(可以是路径加名字)nohup禁止使用这个
##echo -n "enter your name:"
##read jar_name
## --------直接写死--------
jar_name="test-jar-0.0.1-SNAPSHOT.jar"
# sh跟jar在相同目录下就不用写,其他时候以防万一最好写下吧
jar_path=""
## --------尝试过 ./monitor.sh jar_name 但是失败了启动时出现了多余的命令导致判断失败 --------
## 0是脚本名 1~ 开始才是参数
##jar_name=$(echo ${1})
# 本sh的日志
if [ ! -d "./log/netAuthServicLog/${jar_name}/$(date +%Y%m%d)" ]
then
mkdir -p ./log/netAuthServiceLog/${jar_name}/$(date +%Y%m%d)
fi
log_name="./log/netAuthServiceLog/${jar_name}/$(date +%Y%m%d)/log.txt"
# 死循环
while true
do
ps -ef | grep ${jar_name} | grep -v "grep"
if [ $? -eq 0 ]
then
# echo "$(date +%Y%m%d%H%M%S):${jar_name} already started!"
echo "$(date +%Y%m%d%H%M%S):${jar_name} already started!" >> $log_name
else
#echo "$(date +%Y%m%d%H%M%S):${jar_name} restarted!"
echo "$(date +%Y%m%d%H%M%S):${jar_name} restarted!" >> $log_name
# 启动命令 --spring.profiles.active=prod
nohup java -jar -Dfile.encoding=UTF-8 -Xms512M -Xmx512M -Xmn256M ${jar_path}${jar_name} > /dev/null 2>&1 &
fi
# 睡10s
sleep 10
done
设置自启
🧨 注意设置自启 jar的路径要写 (jar_path)
contos 7.3 设置失效,无法重启 命令:vim /etc/rc.d/rc.local
在文件中加入:nohup sh /tn/test/monitor.sh > /dev/null 2>&1 &chmod +x /etc/rc.d/rc.local
reboot 测试
- 下面是成功的
contos 7.3 设置失效,重启成功但是jar没有被拉起 命令:corntab -e 添加内容:@reboot nohup sh /tn/test/monitor.sh > /dev/null 2>&1
- 书接上文,在 monitor.sh 37行启动命令上 加入java的环境变量就可以顺利拉起jar了!
- cat /etc/profile 获取java环境变量
reboot 测试
export JAVA_HOME=/usr/jdk1.8.0_121
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
nohup java -jar -Dfile.encoding=UTF-8 -Xms512M -Xmx512M -Xmn256M ${jar_p
th}${jar_name} > /dev/null 2>&1 &