Add server control script
This commit is contained in:
parent
bb2c9f0b66
commit
a7cf851c90
|
|
@ -94,3 +94,5 @@ ENV/
|
|||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# -- project specific --
|
||||
screenlog.*
|
||||
|
|
|
|||
|
|
@ -0,0 +1,81 @@
|
|||
#!/bin/bash
|
||||
|
||||
WORKDIR="$(dirname "$(readlink -f "$0")")"
|
||||
SCREEN_SOCKNAME="instantchat_server"
|
||||
SERVER_BIN="./server/chatserver.py"
|
||||
|
||||
print_usage() {
|
||||
echo "usage: $0 start|stop|restart|status|attach|pull"
|
||||
}
|
||||
|
||||
if [ $# -ne 1 ]; then
|
||||
print_usage
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cd "$WORKDIR"
|
||||
|
||||
server_status() {
|
||||
echo "Server status (screen -ls):"
|
||||
if screen -ls | grep $SCREEN_SOCKNAME; then
|
||||
echo "Server running"
|
||||
else
|
||||
echo "Server not running"
|
||||
fi
|
||||
}
|
||||
|
||||
server_start() {
|
||||
if screen -ls | grep -q $SCREEN_SOCKNAME; then
|
||||
echo "Server is already running!"
|
||||
return 1
|
||||
else
|
||||
echo "Starting server..."
|
||||
screen -dmS $SCREEN_SOCKNAME -L bash -c "$SERVER_BIN || read -p '-- press key to end screen session --'"
|
||||
fi
|
||||
}
|
||||
|
||||
server_stop() {
|
||||
if screen -ls | grep -q $SCREEN_SOCKNAME; then
|
||||
echo "Stopping server..."
|
||||
kill $(screen -ls | grep $SCREEN_SOCKNAME | grep -o '[0-9]*')
|
||||
else
|
||||
echo "Server is not running!"
|
||||
fi
|
||||
}
|
||||
|
||||
server_restart() {
|
||||
server_stop
|
||||
server_start
|
||||
}
|
||||
|
||||
server_attach() {
|
||||
echo "Attaching to screen session..."
|
||||
screen -r $SCREEN_SOCKNAME
|
||||
}
|
||||
|
||||
server_pull() {
|
||||
echo "Pulling from repository..."
|
||||
if git pull --ff-only; then
|
||||
server_restart
|
||||
else
|
||||
echo "Error while pulling!"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
COMMAND=$1
|
||||
|
||||
case $COMMAND in
|
||||
start) server_start ;;
|
||||
stop) server_stop ;;
|
||||
restart) server_restart ;;
|
||||
status) server_status ;;
|
||||
attach) server_attach ;;
|
||||
pull) server_pull ;;
|
||||
|
||||
*)
|
||||
echo "unknown command"
|
||||
print_usage
|
||||
exit 1
|
||||
esac
|
||||
|
||||
Loading…
Reference in New Issue