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.4 kB

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

类似 Grafana 可接入多种数据源,Grafana 擅长可视化,夜莺擅长告警管理