You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

control 3.7 kB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. #!/bin/bash
  2. # release version
  3. version=2.7.0
  4. CWD=$(cd $(dirname $0)/; pwd)
  5. cd $CWD
  6. usage()
  7. {
  8. echo $"Usage: $0 {start|stop|restart|status|build|pack} <module>"
  9. exit 0
  10. }
  11. start_all()
  12. {
  13. # http: 5800
  14. test -x n9e-monapi && start monapi
  15. # http: 5810 ; rpc: 5811
  16. test -x n9e-transfer && start transfer
  17. # http: 5820 ; rpc: 5821
  18. test -x n9e-tsdb && start tsdb
  19. # http: 5830 ; rpc: 5831
  20. test -x n9e-index && start index
  21. # http: 5840 ; rpc: 5841
  22. test -x n9e-judge && start judge
  23. # http: 2058
  24. test -x n9e-collector && start collector
  25. }
  26. start()
  27. {
  28. mod=$1
  29. if [ "x${mod}" = "x" ]; then
  30. usage
  31. return
  32. fi
  33. if [ "x${mod}" = "xall" ]; then
  34. start_all
  35. return
  36. fi
  37. binfile=n9e-${mod}
  38. if [ ! -f $binfile ]; then
  39. echo "file[$binfile] not found"
  40. exit 1
  41. fi
  42. if [ $(ps aux|grep -v grep|grep -v control|grep "$binfile" -c) -gt 0 ]; then
  43. echo "${mod} already started"
  44. return
  45. fi
  46. mkdir -p logs/$mod
  47. nohup $CWD/$binfile &> logs/${mod}/stdout.log &
  48. for((i=1;i<=15;i++)); do
  49. if [ $(ps aux|grep -v grep|grep -v control|grep "$binfile" -c) -gt 0 ]; then
  50. echo "${mod} started"
  51. return
  52. fi
  53. sleep 0.2
  54. done
  55. echo "cannot start ${mod}"
  56. exit 1
  57. }
  58. stop_all()
  59. {
  60. test -x n9e-monapi && stop monapi
  61. test -x n9e-transfer && stop transfer
  62. test -x n9e-tsdb && stop tsdb
  63. test -x n9e-index && stop index
  64. test -x n9e-judge && stop judge
  65. test -x n9e-collector && stop collector
  66. }
  67. stop()
  68. {
  69. mod=$1
  70. if [ "x${mod}" = "x" ]; then
  71. usage
  72. return
  73. fi
  74. if [ "x${mod}" = "xall" ]; then
  75. stop_all
  76. return
  77. fi
  78. binfile=n9e-${mod}
  79. if [ $(ps aux|grep -v grep|grep -v control|grep "$binfile" -c) -eq 0 ]; then
  80. echo "${mod} already stopped"
  81. return
  82. fi
  83. ps aux|grep -v grep|grep -v control|grep "$binfile"|awk '{print $2}'|xargs kill
  84. for((i=1;i<=15;i++)); do
  85. if [ $(ps aux|grep -v grep|grep -v control|grep "$binfile" -c) -eq 0 ]; then
  86. echo "${mod} stopped"
  87. return
  88. fi
  89. sleep 0.2
  90. done
  91. echo "cannot stop $mod"
  92. exit 1
  93. }
  94. restart()
  95. {
  96. mod=$1
  97. if [ "x${mod}" = "x" ]; then
  98. usage
  99. return
  100. fi
  101. if [ "x${mod}" = "xall" ]; then
  102. stop_all
  103. start_all
  104. return
  105. fi
  106. stop $mod
  107. start $mod
  108. status
  109. }
  110. status()
  111. {
  112. ps aux|grep -v grep|grep "n9e"
  113. }
  114. build_one()
  115. {
  116. mod=$1
  117. go build -ldflags "-X main.version=${version} -X main.buildTime=`date -u '+%Y-%m-%d_%I:%M:%S%p'` -X main.gitHash=`git rev-parse HEAD`" -mod=vendor -o n9e-${mod} src/modules/${mod}/${mod}.go
  118. }
  119. build_docker()
  120. {
  121. mod=$1
  122. go build -ldflags "-X main.version=${version} -X main.buildTime=`date -u '+%Y-%m-%d_%I:%M:%S%p'` -X main.gitHash=`git rev-parse HEAD`" -mod=vendor -o bin/n9e-${mod} src/modules/${mod}/${mod}.go
  123. }
  124. build()
  125. {
  126. export GO111MODULE=on
  127. mod=$1
  128. if [ "x${mod}" = "x" ]; then
  129. build_one monapi
  130. build_one transfer
  131. build_one index
  132. build_one judge
  133. build_one collector
  134. build_one tsdb
  135. return
  136. fi
  137. if [ "x${mod}" = "xdocker" ]; then
  138. build_docker monapi
  139. build_docker transfer
  140. build_docker index
  141. build_docker judge
  142. build_docker collector
  143. build_docker tsdb
  144. return
  145. fi
  146. build_one $mod
  147. }
  148. reload()
  149. {
  150. mod=$1
  151. if [ "x${mod}" = "x" ]; then
  152. echo "arg: <mod> is necessary"
  153. return
  154. fi
  155. build_one $mod
  156. restart $mod
  157. }
  158. pack()
  159. {
  160. v=$1
  161. if [ "x${v}" = "x" ]; then
  162. v=$(date +%Y-%m-%d-%H-%M-%S)
  163. fi
  164. tar zcvf n9e-$v.tar.gz control sql plugin pub etc/log etc/port etc/service etc/nginx.conf etc/mysql.yml etc/address.yml \
  165. n9e-collector etc/collector.yml \
  166. n9e-tsdb etc/tsdb.yml \
  167. n9e-index etc/index.yml \
  168. n9e-judge etc/judge.yml \
  169. n9e-transfer etc/transfer.yml \
  170. n9e-monapi etc/monapi.yml
  171. }
  172. case "$1" in
  173. start)
  174. start $2
  175. ;;
  176. stop)
  177. stop $2
  178. ;;
  179. restart)
  180. restart $2
  181. ;;
  182. status)
  183. status
  184. ;;
  185. build)
  186. build $2
  187. ;;
  188. reload)
  189. reload $2
  190. ;;
  191. pack)
  192. pack $2
  193. ;;
  194. *)
  195. usage
  196. esac