video-recommend-queue.sh 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. #!/bin/sh
  2. #启动用户
  3. RUNNING_USER=root
  4. SR_HOME=/home/tomcat/tomcat-video-recommend-queue/
  5. APP_MAINCLASS=tomcat-video-recommend-queue/
  6. JAVA_CMD=" sh $SR_HOME/bin/startup.sh "
  7. JAVA_CMD_SHUTDOWN=" sh $SR_HOME/bin/shutdown.sh "
  8. #初始化psid变量(全局)
  9. psid=0
  10. checkpid() {
  11. javaps=`ps aux | grep $SR_HOME | grep -v grep | grep -v retomcat `
  12. if [ -n "$javaps" ]; then
  13. psid=`echo $javaps | awk '{print $2}'`
  14. else
  15. psid=0
  16. fi
  17. }
  18. start() {
  19. checkpid
  20. if [ $psid -ne 0 ]; then
  21. echo "================================"
  22. echo "warn: $APP_MAINCLASS already started! (pid=$psid)"
  23. echo "================================"
  24. else
  25. echo -n "Starting $APP_MAINCLASS ..."
  26. # JAVA_CMD=" $JAVA_HOME/bin/java $JAVA_OPTS >${LOGS} 2>&1 &"
  27. #cd $APP_HOME/${APP_MAINCLASS}
  28. su $RUNNING_USER -c "$JAVA_CMD "
  29. checkpid
  30. if [ $psid -ne 0 ]; then
  31. echo "================================"
  32. echo "(pid=$psid) [OK]"
  33. echo "================================"
  34. else
  35. echo "[Failed]"
  36. fi
  37. fi
  38. }
  39. ###################################
  40. #(函数)停止程序
  41. ###################################
  42. stop() {
  43. checkpid
  44. if [ $psid -ne 0 ]; then
  45. echo "================================"
  46. echo -n "Stopping $APP_MAINCLASS ...(pid=$psid) "
  47. su $RUNNING_USER -c "$JAVA_CMD_SHUTDOWN"
  48. sleep 5
  49. if [ $psid -ne 0 ]; then
  50. kill -9 $psid
  51. fi
  52. if [ $? -eq 0 ]; then
  53. echo "[OK]"
  54. else
  55. echo "[Failed]"
  56. fi
  57. checkpid
  58. if [ $psid -ne 0 ]; then
  59. stop
  60. fi
  61. else
  62. echo "================================"
  63. echo "warn: $APP_MAINCLASS is not running"
  64. echo "================================"
  65. fi
  66. }
  67. restart() {
  68. stop
  69. start
  70. info
  71. }
  72. ###################################
  73. #(函数)检查程序运行状态
  74. #
  75. #说明:
  76. #1. 首先调用checkpid函数,刷新$psid全局变量
  77. #2. 如果程序已经启动($psid不等于0),则提示正在运行并表示出pid
  78. #3. 否则,提示程序未运行
  79. ###################################
  80. status() {
  81. checkpid
  82. echo "hostname is $(hostname)"
  83. if [ $psid -ne 0 ]; then
  84. echo "================================"
  85. echo "$APP_MAINCLASS is running! (pid=$psid)"
  86. echo "================================"
  87. else
  88. echo "================================"
  89. echo "$APP_MAINCLASS is not running"
  90. echo "================================"
  91. fi
  92. }
  93. ###################################
  94. #(函数)打印系统环境参数
  95. ###################################
  96. info() {
  97. echo "System Information:"
  98. echo "================================"
  99. echo `head -n 1 /etc/issue`
  100. echo `uname -a`
  101. echo
  102. echo `$JAVA_HOME/bin/java -version`
  103. echo
  104. echo "==============================="
  105. echo "SR_HOME=$SR_HOME"
  106. echo "LOGS_HOME=$LOGS_HOME"
  107. echo "==============================="
  108. }
  109. ###################################
  110. #读取脚本的第一个参数($1),进行判断
  111. #参数取值范围:{start|stop|restart|status|info}
  112. #如参数不在指定范围之内,则打印帮助信息
  113. ###################################
  114. case "$1" in
  115. 'start')
  116. start
  117. ;;
  118. 'stop')
  119. stop
  120. ;;
  121. 'restart')
  122. stop
  123. start
  124. ;;
  125. 'status')
  126. status
  127. ;;
  128. 'info')
  129. info
  130. ;;
  131. *)
  132. echo "Usage: $0 {start|stop|restart|status|info}"
  133. exit 1
  134. ;;
  135. esac