参考

防止原文被删所以记录下

拉起脚本实践

vim monitor.sh chmod a+x monitor.sh (给予可执行权限) 后台启动:nohup sh ./monitor.sh > /dev/null 2>&1 &

  • ps -fe|grep ./monitor.sh
  • kill -9 pid
  1. #!/bin/bash
  2. # chkconfig:2345 60 30
  3. # description: Pull up the jar
  4. ## --------输入jar名(可以是路径加名字)nohup禁止使用这个
  5. ##echo -n "enter your name:"
  6. ##read jar_name
  7. ## --------直接写死--------
  8. jar_name="test-jar-0.0.1-SNAPSHOT.jar"
  9. # sh跟jar在相同目录下就不用写,其他时候以防万一最好写下吧
  10. jar_path=""
  11. ## --------尝试过 ./monitor.sh jar_name 但是失败了启动时出现了多余的命令导致判断失败 --------
  12. ## 0是脚本名 1~ 开始才是参数
  13. ##jar_name=$(echo ${1})
  14. # 本sh的日志
  15. if [ ! -d "./log/netAuthServicLog/${jar_name}/$(date +%Y%m%d)" ]
  16. then
  17. mkdir -p ./log/netAuthServiceLog/${jar_name}/$(date +%Y%m%d)
  18. fi
  19. log_name="./log/netAuthServiceLog/${jar_name}/$(date +%Y%m%d)/log.txt"
  20. # 死循环
  21. while true
  22. do
  23. ps -ef | grep ${jar_name} | grep -v "grep"
  24. if [ $? -eq 0 ]
  25. then
  26. # echo "$(date +%Y%m%d%H%M%S):${jar_name} already started!"
  27. echo "$(date +%Y%m%d%H%M%S):${jar_name} already started!" >> $log_name
  28. else
  29. #echo "$(date +%Y%m%d%H%M%S):${jar_name} restarted!"
  30. echo "$(date +%Y%m%d%H%M%S):${jar_name} restarted!" >> $log_name
  31. # 启动命令 --spring.profiles.active=prod
  32. nohup java -jar -Dfile.encoding=UTF-8 -Xms512M -Xmx512M -Xmn256M ${jar_path}${jar_name} > /dev/null 2>&1 &
  33. fi
  34. # 睡10s
  35. sleep 10
  36. 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 image.png

    • 书接上文,在 monitor.sh 37行启动命令上 加入java的环境变量就可以顺利拉起jar了!
    • cat /etc/profile 获取java环境变量

    reboot 测试

  1. export JAVA_HOME=/usr/jdk1.8.0_121
  2. export PATH=$JAVA_HOME/bin:$PATH
  3. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  4. nohup java -jar -Dfile.encoding=UTF-8 -Xms512M -Xmx512M -Xmn256M ${jar_p
  5. th}${jar_name} > /dev/null 2>&1 &

image.png