1. #! /bin/sh
    2. USER=`whoami`
    3. if [ "$USER" != "like" ] ;
    4. then
    5. echo "only user 【like】 can deploy"
    6. exit 0
    7. fi
    8. if readlink -f "$0" > /dev/null 2>&1
    9. then
    10. SHELL_BIN=$(readlink -f "$0")
    11. else
    12. SHELL_BIN="$0"
    13. fi
    14. BIN_HOME=$(dirname $SHELL_BIN)
    15. APP_HOME=$(dirname $SHELL_BIN)
    16. PID_LOG=$BIN_HOME/pid
    17. source /data/sh/like_front.env
    18. JAVA_OPTS=$JAVA_OPTS' -XX:+DisableExplicitGC -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:'$APP_HOME'/gc.log -XX:ErrorFile='$APP_HOME'/hs_err_pid'`date +%Y%m%d%H%M`'.log'
    19. JAVA_OPTS=$JAVA_OPTS' -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath='$APP_HOME'/hs_dump_pid'`date +%Y%m%d%H%M`'.log'
    20. CLASS_PATH=.
    21. CLASS_PATH=$CLASS_PATH:$APP_HOME/conf
    22. CLASS_PATH=$CLASS_PATH:$(echo $APP_HOME/lib/*.jar|sed 's/ /:/g')
    23. MAINCLASS=com.like.cloud.front.FrontApplication
    24. echo "======================================================================================"
    25. echo "SHELL_BIN: "$SHELL_BIN
    26. echo "BIN_HOME: "$BIN_HOME
    27. echo "APP_HOME: "$APP_HOME
    28. echo "PID_LOG: "$PID_LOG
    29. echo "JAVA_OPTS: "$JAVA_OPTS
    30. echo "CLASS_PATH: "$CLASS_PATH
    31. echo "MAINCLASS: "$MAINCLASS
    32. echo "======================================================================================"
    33. start(){
    34. if [ -f "$PID_LOG" ];then
    35. echo "FAIL"
    36. echo "Pid File exists, please check application whether running."
    37. exit 1
    38. else
    39. nohup java $JAVA_OPTS -Duser.dir=$BIN_HOME -classpath $CLASS_PATH ${MAINCLASS} >> $LIKE_LOG_PATH/nohup 2>&1 &
    40. pid=$!
    41. sleep 5
    42. if [ -x /proc/$pid ];then
    43. echo $pid > ${PID_LOG}
    44. echo "Success start service with pid $pid"
    45. exit 0
    46. else
    47. echo "Failed start service.See log ${LOG_STD_ERR}"
    48. exit 1
    49. fi
    50. echo $! >$PID_LOG
    51. echo "SUCCESS"
    52. echo "application start success"
    53. exit 0
    54. fi
    55. }
    56. stop(){
    57. if [ -f "$PID_LOG" ];then
    58. if [ -n "$(cat $PID_LOG)" ];then
    59. kill -15 $(cat $PID_LOG)
    60. sleep 15
    61. kill -9 $(cat $PID_LOG)
    62. rm -f $PID_LOG
    63. echo "SUCCESS"
    64. echo "application stop success"
    65. exit 0
    66. else
    67. echo "FAIL"
    68. echo "PID FILE is empty,please check whether the application running, and use kill command to stop the application"
    69. exit 1
    70. fi
    71. else
    72. echo "FAIL"
    73. echo "Pid file not exist,please check whether the application running, and use kill command to stop the application."
    74. exit 0
    75. fi
    76. }
    77. case "$1" in
    78. start)
    79. start
    80. ;;
    81. stop)
    82. stop
    83. ;;
    84. *)
    85. echo 'Usage command: {start|stop}\n'
    86. exit 1
    87. ;;
    88. esac
    89. exit 0