213 lines
3.0 KiB
Bash
Executable File
213 lines
3.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# release version
|
|
version=3.0.1
|
|
|
|
CWD=$(cd $(dirname $0)/; pwd)
|
|
cd $CWD
|
|
|
|
usage()
|
|
{
|
|
echo $"Usage: $0 {start|stop|restart|status|build|pack} <module>"
|
|
exit 0
|
|
}
|
|
|
|
start_all()
|
|
{
|
|
test -x n9e-rdb && start rdb
|
|
test -x n9e-job && start job
|
|
test -x n9e-ams && start ams
|
|
test -x n9e-monapi && start monapi
|
|
test -x n9e-tsdb && start tsdb
|
|
test -x n9e-index && start index
|
|
test -x n9e-transfer && start transfer
|
|
test -x n9e-judge && start judge
|
|
test -x n9e-agent && start agent
|
|
}
|
|
|
|
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-agent && stop agent
|
|
test -x n9e-judge && stop judge
|
|
test -x n9e-transfer && stop transfer
|
|
test -x n9e-index && stop index
|
|
test -x n9e-tsdb && stop tsdb
|
|
test -x n9e-monapi && stop monapi
|
|
test -x n9e-ams && stop ams
|
|
test -x n9e-job && stop job
|
|
test -x n9e-rdb && stop rdb
|
|
}
|
|
|
|
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
|
|
go build -ldflags "-X main.version=${version}" -o n9e-${mod} src/modules/${mod}/${mod}.go
|
|
}
|
|
|
|
build()
|
|
{
|
|
export GO111MODULE=on
|
|
|
|
mod=$1
|
|
if [ "x${mod}" = "x" ]; then
|
|
build_one monapi
|
|
build_one transfer
|
|
build_one index
|
|
build_one judge
|
|
build_one agent
|
|
build_one tsdb
|
|
build_one rdb
|
|
build_one ams
|
|
build_one job
|
|
return
|
|
fi
|
|
|
|
build_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 $clock
|
|
mv etc/*.local.yml $clock
|
|
tar zcvf n9e-${version}.tar.gz control sql etc n9e-*
|
|
mv $clock/* etc/
|
|
rm -rf $clock
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
start $2
|
|
;;
|
|
stop)
|
|
stop $2
|
|
;;
|
|
restart)
|
|
restart $2
|
|
;;
|
|
status)
|
|
status
|
|
;;
|
|
build)
|
|
build $2
|
|
;;
|
|
reload)
|
|
reload $2
|
|
;;
|
|
pack)
|
|
pack $2
|
|
;;
|
|
*)
|
|
usage
|
|
esac
|