1. #!/bin/bash
    2. . /etc/profile
    3. . ~/.bash_profile
    4. #------------------------------------------------------------------------------------------------
    5. #程序部署目录
    6. _workDir=/home/apps/mauth
    7. #部署程序jar名称
    8. _program=$_workDir/xinecai-mobile-auth-service-2.0.0-SNAPSHOT.jar
    9. #部署程序jar springboot启动参数如:--server.port=9000 --spring.profiles.active=dev
    10. #不指定参数时,可以为空
    11. _program_param='--server.port=9055 --spring.profiles.active=dev'
    12. #是否启动远程调试: 0 不开启 1 开启
    13. _is_remote_debug=0
    14. #启动时指定日志输出文件
    15. _default_log_file=/home/apps/mauth/logs/mauth.log
    16. #------------------------------------------------------------------------------------------------
    17. _programid=0
    18. cmd=`which java`
    19. tmp=`dirname $0`
    20. cd $tmp
    21. #start project
    22. function startSA(){
    23. echo "starting $_program"
    24. _programid=`ps aux | grep $_program | grep -v grep | awk 'END{print $2}'`
    25. echo programid is $_programid
    26. if [ -z $_programid ]
    27. then
    28. case $1 in
    29. start)
    30. nohup $cmd -Dfile.encoding=UTF-8 -jar $_program $_program_param >> $_default_log_file 2>&1 &
    31. _programid=`ps aux | grep $_program | grep -v grep | awk 'END{print $2}'`
    32. echo $_programid
    33. if [ -z $_programid ]
    34. then
    35. echo "Failed to start program."
    36. else
    37. echo "program has started. Process ID:$_programid";
    38. fi
    39. ;;
    40. start-f)
    41. $cmd -Dfile.encoding=UTF-8 -jar $_program $_program_param 2>&1
    42. _programid=`ps aux | grep $_program | grep -v grep | awk 'END{print $2}'`
    43. if [ -z $_programid ]
    44. then
    45. echo "Failed to start program."
    46. else
    47. echo "program has started. Process ID:$_programid";
    48. fi
    49. ;;
    50. esac
    51. else
    52. echo "program is already running. Process ID: $_programid"
    53. exit -1;
    54. fi
    55. }
    56. # stop project
    57. function stopSA(){
    58. _programid=`ps aux | grep $_program | grep -v grep | awk 'END{print $2}'`
    59. if [ -z $_programid ]
    60. then
    61. echo "No program"
    62. else
    63. echo "program process ID: $_programid"
    64. echo "Stopping..."
    65. kill $_programid
    66. sleep 1
    67. echo "program stoped."
    68. fi
    69. }
    70. # look current project status
    71. function statusSA(){
    72. _programid=`ps aux | grep $_program | grep -v grep | awk 'END{print $2}'`
    73. if [ -z $_programid ]
    74. then
    75. echo "program is stoped"
    76. else
    77. echo "program is running"
    78. echo "process ID: $_programid"
    79. fi
    80. }
    81. # jenkins app deploy
    82. function jdeploySA(){
    83. BUILD_ID=dontKillMe
    84. stopSA
    85. mv -f $_program $_program.bak
    86. echo "backup $_program success!"
    87. mv -f $_workDir/target/* $_workDir
    88. rm -rf $_workDir/target/
    89. cd $_workDir
    90. if [ $_is_remote_debug -eq 1 ]
    91. then
    92. echo "$cmd -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y -jar $_program $_program_param"
    93. echo "service application is debugging,please run local application to debug !"
    94. $cmd -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=y -jar $_program $_program_param
    95. else
    96. startSA start
    97. fi
    98. }
    99. # use tips
    100. if [ $# -ge 1 ]
    101. then
    102. case $1 in
    103. start)
    104. startSA $1
    105. ;;
    106. stop)
    107. stopSA
    108. ;;
    109. start-f)
    110. startSA $1
    111. ;;
    112. status)
    113. statusSA
    114. ;;
    115. restart)
    116. stopSA
    117. startSA start
    118. ;;
    119. jdeploy)
    120. jdeploySA
    121. ;;
    122. esac
    123. else
    124. echo "Usage: $0 [start|start-f|stop|status|restart] "
    125. echo " <1> ./load.sh start , start program in background."
    126. echo " <2> ./load.sh start-f , start program in foreground."
    127. echo " <3> ./load.sh stop , stop program."
    128. echo " <4> ./load.sh status , show program running status."
    129. echo " <5> ./load.sh restart , restart program."
    130. echo " <6> other shell command , 未知命令"
    131. fi