configs/utils/webtiles

72 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
### BEGIN INIT INFO
# Provides: webtiles
# Required-Start: $local_fs $remote_fs $network $named
# Required-Stop: $local_fs $remote_fs $network $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/stop Dungeon Crawl webtiles server
### END INIT INFO
. /lib/lsb/init-functions
# kill -TERM doesn't work
signal=ABRT
announce() {
echo "$@" >> %%ANNOUNCEMENTS_FILE%%
}
quietly() {
"$@" >/dev/null 2>&1
}
stop_webtiles() {
log_daemon_msg "Stopping webtiles server" "webtiles"
[ -z "$1" ] || ! quietly ps "$1" || kill -$signal "$1"
local result=$?
log_end_msg $result
return $result
}
start_webtiles() {
log_daemon_msg "Starting webtiles server" "webtiles"
ulimit -n 4096
PYTHONPATH=/home/crawl-dev/tornado/ python ./server.py
local result=$?
log_end_msg $result
return $result
}
cd %%CRAWL_BASEDIR%%/webserver
pid=$([ -e run/webtiles.pid ] && cat run/webtiles.pid)
case $1 in
start)
if [ -n "$pid" ] && quietly ps "$pid"; then
log_warning_msg "Webtiles was already running!"
else
start_webtiles && announce "Webtiles server started."
fi
;;
stop)
stop_webtiles "$pid" && announce "Webtiles server stopped."
;;
restart|reload)
if stop_webtiles "$pid" && sleep 3; then
if start_webtiles; then
announce "Webtiles server restarted.";
else
announce "Webtiles server failed to restart.";
fi
fi
;;
*)
log_success_msg "Usage: /etc/init.d/webtiles {start|stop|restart}"
exit 1
;;
esac