Add server control script

This commit is contained in:
Lexi / Zoe 2018-11-12 21:25:35 +01:00
parent bb2c9f0b66
commit a7cf851c90
2 changed files with 83 additions and 0 deletions

2
.gitignore vendored
View File

@ -94,3 +94,5 @@ ENV/
# Rope project settings
.ropeproject
# -- project specific --
screenlog.*

81
instantchatctl Executable file
View File

@ -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