参考

防止原文被删记录下

  1. #!/bin/bash
  2. #jar包文件路径及名称(目录按照各自配置)
  3. APP_NAME=/tn/project/syslogin.jar
  4. #日志文件路径及名称(目录按照各自配置)
  5. LOG_FILE=/opt/app/logs/syslogin.log
  6. # 查询进程,并杀掉当前jar/java程序
  7. pid=`ps -ef|grep $APP_NAME | grep -v grep | awk '{print $2}'`
  8. kill -9 $pid
  9. echo "$pid进程终止成功"
  10. sleep 2
  11. # 判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
  12. if test -e $APP_NAME
  13. then
  14. echo '文件存在,开始启动此程序...'
  15. # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
  16. nohup java -jar -Xmx1024m -Xms1024m $APP_NAME > /dev/null 2>&1 &
  17. # 实时查看启动日志(此处正在想办法启动成功后退出)
  18. tail -f $LOG_FILE
  19. # 输出启动成功(上面的查看日志没有退出,所以执行不了,可以去掉)
  20. #echo '$APP_NAME 启动成功...'
  21. else
  22. echo '$APP_NAME 文件不存在,请检查。'
  23. fi

补充- 监听启动成功

  1. # wc -l: jar包进程的数量
  2. num=`ps -ef|grep $APP_NAME_SOUL |grep -v grep| awk '{print $2}'| wc -l`
  3. if [[ $num -eq 1 ]];
  4. then
  5. echo '$APP_NAME_SOUL 启动成功...'
  6. fi

实践

vim xx.sh

  1. #!/bin/bash
  2. #jar包文件路径及名称(目录按照各自配置)
  3. APP_NAME_FILE=/doc/program/smart/file-0.0.1-SNAPSHOT.jar
  4. APP_NAME_SOUL=/doc/program/smart/soul-admin.jar
  5. APP_NAME_GATEWAY=/doc/program/smart/gateway-0.0.1-SNAPSHOT.jar
  6. APP_NAME_APPOINTMENT=/doc/program/smart/appointment-0.0.1-SNAPSHOT.jar
  7. APP_NAME_USER=/doc/program/smart/user-0.0.1-SNAPSHOT.jar
  8. APP_NAME_SOLR=/doc/program/smart/solr-0.0.1-SNAPSHOT.jar
  9. # 查询进程,并杀掉当前jar/java程序
  10. pid=`ps -ef|grep $APP_NAME_FILE | grep -v grep | awk '{print $2}'`
  11. kill -9 $pid
  12. echo "$pid进程终止成功"
  13. sleep 1
  14. pid=`ps -ef|grep $APP_NAME_SOUL | grep -v grep | awk '{print $2}'`
  15. kill -9 $pid
  16. echo "$pid进程终止成功"
  17. sleep 1
  18. pid=`ps -ef|grep $APP_NAME_GATEWAY | grep -v grep | awk '{print $2}'`
  19. kill -9 $pid
  20. echo "$pid进程终止成功"
  21. sleep 1
  22. pid=`ps -ef|grep $APP_NAME_APPOINTMENT | grep -v grep | awk '{print $2}'`
  23. kill -9 $pid
  24. echo "$pid进程终止成功"
  25. sleep 1
  26. pid=`ps -ef|grep $APP_NAME_USER | grep -v grep | awk '{print $2}'`
  27. kill -9 $pid
  28. echo "$pid进程终止成功"
  29. sleep 1
  30. pid=`ps -ef|grep $APP_NAME_SOLR | grep -v grep | awk '{print $2}'`
  31. kill -9 $pid
  32. echo "$pid进程终止成功"
  33. sleep 2
  34. # 判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
  35. if test -e $APP_NAME_SOUL
  36. then
  37. echo '文件存在,开始启动此程序...'
  38. # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
  39. nohup java -jar -Xmx1024m -Xms1024m $APP_NAME_SOUL >/dev/null 2>&1 &
  40. #echo '$APP_NAME_SOUL 启动成功...'
  41. else
  42. echo '$APP_NAME_SOUL 文件不存在,请检查。'
  43. fi
  44. sleep 2
  45. # wc -l: jar包进程的数量
  46. num=`ps -ef|grep $APP_NAME_SOUL |grep -v grep| awk '{print $2}'| wc -l`
  47. if [[ $num -eq 1 ]];
  48. then
  49. echo '$APP_NAME_SOUL 启动成功...'
  50. # 判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
  51. if test -e $APP_NAME_FILE
  52. then
  53. echo '文件存在,开始启动此程序...'
  54. # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
  55. nohup java -jar -Xmx512m -Xms512m $APP_NAME_FILE >/dev/null 2>&1 &
  56. #echo '$APP_NAME_FILE 启动成功...'
  57. else
  58. echo '$APP_NAME_FILE 文件不存在,请检查。'
  59. fi
  60. sleep 2
  61. # 判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
  62. if test -e $APP_NAME_GATEWAY
  63. then
  64. echo '文件存在,开始启动此程序...'
  65. # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
  66. nohup java -jar -Xmx512m -Xms512m $APP_NAME_GATEWAY >/dev/null 2>&1 &
  67. #echo '$APP_NAME_GATEWAY 启动成功...'
  68. else
  69. echo '$APP_NAME_GATEWAY 文件不存在,请检查。'
  70. fi
  71. sleep 2
  72. # 判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
  73. if test -e $APP_NAME_APPOINTMENT
  74. then
  75. echo '文件存在,开始启动此程序...'
  76. # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
  77. nohup java -jar -Xmx512m -Xms512m $APP_NAME_APPOINTMENT >/dev/null 2>&1 &
  78. #echo '$APP_NAME_APPOINTMENT 启动成功...'
  79. else
  80. echo '$APP_NAME_APPOINTMENT 文件不存在,请检查。'
  81. fi
  82. sleep 2
  83. # 判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
  84. if test -e $APP_NAME_USER
  85. then
  86. echo '文件存在,开始启动此程序...'
  87. # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
  88. nohup java -jar -Xmx512m -Xms512m $APP_NAME_USER >/dev/null 2>&1 &
  89. #echo '$APP_NAME_USER 启动成功...'
  90. else
  91. echo '$APP_NAME_USER 文件不存在,请检查。'
  92. fi
  93. sleep 2
  94. # 判断jar包文件是否存在,如果存在启动jar包,并时时查看启动日志
  95. if test -e $APP_NAME_SOLR
  96. then
  97. echo '文件存在,开始启动此程序...'
  98. # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件
  99. nohup java -jar -Xmx512m -Xms512m $APP_NAME_SOLR >/dev/null 2>&1 &
  100. #echo '$APP_NAME_SOLR 启动成功...'
  101. else
  102. echo '$APP_NAME_SOLR 文件不存在,请检查。'
  103. fi
  104. fi