参考
防止原文被删所以记录下
拉起脚本实践
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)" ]thenmkdir -p ./log/netAuthServiceLog/${jar_name}/$(date +%Y%m%d)filog_name="./log/netAuthServiceLog/${jar_name}/$(date +%Y%m%d)/log.txt"# 死循环while truedops -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_nameelse#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=prodnohup java -jar -Dfile.encoding=UTF-8 -Xms512M -Xmx512M -Xmn256M ${jar_path}${jar_name} > /dev/null 2>&1 &fi# 睡10ssleep 10done
设置自启
🧨 注意设置自启 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_121export PATH=$JAVA_HOME/bin:$PATHexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarnohup java -jar -Dfile.encoding=UTF-8 -Xms512M -Xmx512M -Xmn256M ${jar_pth}${jar_name} > /dev/null 2>&1 &

