|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- #!/bin/bash
-
- # release version
- version=4.0.0
-
- CWD=$(cd $(dirname $0)/; pwd)
- cd $CWD
-
- usage()
- {
- echo $"Usage: $0 {start|stop|restart|status|build|build_local|pack} <module>"
- exit 0
- }
-
- start_all()
- {
- test -x n9e-server && start server
- test -x n9e-agentd && start agentd
- test -x n9e-prober && start prober
- }
-
- start()
- {
- mod=$1
- if [ "x${mod}" = "x" ]; then
- usage
- return
- fi
-
- if [ "x${mod}" = "xall" ]; then
- start_all
- return
- fi
-
- binfile=n9e-${mod}
-
- if [ ! -f $binfile ]; then
- echo "file[$binfile] not found"
- exit 1
- fi
-
- if [ $(ps aux|grep -v grep|grep -v control|grep "$binfile" -c) -gt 0 ]; then
- echo "${mod} already started"
- return
- fi
-
- mkdir -p logs/$mod
- nohup $CWD/$binfile &> logs/${mod}/stdout.log &
-
- for((i=1;i<=15;i++)); do
- if [ $(ps aux|grep -v grep|grep -v control|grep "$binfile" -c) -gt 0 ]; then
- echo "${mod} started"
- return
- fi
- sleep 0.2
- done
-
- echo "cannot start ${mod}"
- exit 1
- }
-
- stop_all()
- {
- test -x n9e-server && stop server
- test -x n9e-prober && stop prober
- test -x n9e-agentd && stop agentd
- }
-
- stop()
- {
- mod=$1
- if [ "x${mod}" = "x" ]; then
- usage
- return
- fi
-
- if [ "x${mod}" = "xall" ]; then
- stop_all
- return
- fi
-
- binfile=n9e-${mod}
-
- if [ $(ps aux|grep -v grep|grep -v control|grep "$binfile" -c) -eq 0 ]; then
- echo "${mod} already stopped"
- return
- fi
-
- ps aux|grep -v grep|grep -v control|grep "$binfile"|awk '{print $2}'|xargs kill
- for((i=1;i<=15;i++)); do
- if [ $(ps aux|grep -v grep|grep -v control|grep "$binfile" -c) -eq 0 ]; then
- echo "${mod} stopped"
- return
- fi
- sleep 0.2
- done
-
- echo "cannot stop $mod"
- exit 1
- }
-
- restart()
- {
- mod=$1
- if [ "x${mod}" = "x" ]; then
- usage
- return
- fi
-
- if [ "x${mod}" = "xall" ]; then
- stop_all
- start_all
- return
- fi
-
- stop $mod
- start $mod
-
- status
- }
-
- status()
- {
- ps aux|grep -v grep|grep "n9e"
- }
-
- build_one()
- {
- mod=$1
- echo -n "building ${mod} ... "
- go build -ldflags "-X main.version=${version}" -o n9e-${mod} src/modules/${mod}/${mod}.go
- echo "done"
- }
-
- build_local_one()
- {
- mod=$1
- echo -n "building ${mod} ... "
- go build -mod=vendor -ldflags "-X main.version=${version}" -o n9e-${mod} src/modules/${mod}/${mod}.go
- echo "done"
- }
-
- build()
- {
- export GO111MODULE=on
-
- mod=$1
- if [ "x${mod}" = "x" ]; then
- build_one server
- build_one agentd
- build_one prober
- return
- fi
-
- build_one $mod
- }
-
- build_local()
- {
- export GO111MODULE=on
-
- mod=$1
- if [ "x${mod}" = "x" ]; then
- build_local_one server
- build_local_one agentd
- build_local_one prober
- return
- fi
-
- build_local_one $mod
- }
-
- reload()
- {
- mod=$1
- if [ "x${mod}" = "x" ]; then
- echo "arg: <mod> is necessary"
- return
- fi
-
- build_one $mod
- restart $mod
- }
-
- pack()
- {
- clock=$(date +%s)
- mkdir -p ~/n9e.bak.$clock
-
- if ls etc/*.local.yml &>/dev/null; then
- mv etc/*.local.yml ~/n9e.bak.$clock
- fi
-
- tar zcvf n9e-${version}.tar.gz script control sql etc n9e-*
-
- if ls ~/n9e.bak.$clock/*.local.yml &>/dev/null; then
- mv ~/n9e.bak.$clock/*.local.yml etc/
- fi
-
- rm -rf ~/n9e.bak.$clock
- }
-
- exec()
- {
-
- params=${@:2}
-
- if [ ${#2} -gt 0 ]; then
- for param in $params
- do
- $1 $param
- if [ "x${mod}" = "xall" ]; then
- break
- fi
- done
- else
- echo "todo $1 at "$(date "+%Y-%m-%d %H:%M:%S")
- $1
- echo "done $1 at "$(date "+%Y-%m-%d %H:%M:%S")
- fi
- }
-
- case "$1" in
- start)
- exec start ${@:2}
- ;;
- stop)
- exec stop ${@:2}
- ;;
- restart)
- exec restart ${@:2}
- ;;
- status)
- status
- ;;
- build)
- exec build ${@:2}
- ;;
- build_local)
- exec build_local ${@:2}
- ;;
- reload)
- exec reload ${@:2}
- ;;
- pack)
- exec pack ${@:2}
- ;;
- *)
- usage
- esac
|