Refactor code into functions, implement restart

This commit is contained in:
Marcel Hanraets 2014-07-11 12:35:12 +02:00
parent e5d00c08b0
commit 91f142ec3f

View File

@ -10,7 +10,6 @@
### END INIT INFO ### END INIT INFO
# @TODO # @TODO
# - Implement restart
# - Implement status # - Implement status
# Config START # Config START
@ -25,50 +24,63 @@ JAROPTS="--universe ${WORLDPATH}"
# We want LSB functions here # We want LSB functions here
. /lib/lsb/init-functions . /lib/lsb/init-functions
server_start() {
if [ -z "$(pgrep -f -n $JARNAME)" ]; then
log_daemon_msg "Starting Minecraft Server" "Craftbukkit"
sudo -u ${USER} tmux new-session -d -s craftbukkit-console "cd ${SRVPATH}; java ${JAVAOPTS} -jar ${JARNAME}" >/dev/null 2>&1
sleep 1
if [ $? -gt 0 ]; then # Tmux did not start
log_failure_msg
exit 1
elif [ -z "$(pgrep -f -n $JARNAME)" ]; then # Tmux stared, but Java did not
log_failure_msg
exit 1
else
log_success_msg
fi
else
log_warning_msg "Craftbukkit is already running!"
exit 1
fi
}
server_stop() {
if [ -n "$(pgrep -f -n $JARNAME)" ]; then
log_daemon_msg "Stopping Minecraft Server" "Craftbukkit"
sudo -u ${USER} tmux send-keys -t craftbukkit-console "say NOTICE: Server shutting down in 5 seconds!" C-m >/dev/null 2>&1
sleep 5
sudo -u ${USER} tmux send-keys -t craftbukkit-console "save-all" C-m >/dev/null 2>&1
sleep 1
sudo -u ${USER} tmux send-keys -t craftbukkit-console "stop" C-m >/dev/null 2>&1
sleep 10
if [ -n "$(pgrep -f -n $JARNAME)" ]; then
log_failure_msg
exit 1
else
log_success_msg
fi
else
log_warning_msg "Craftbukkit is not running!"
exit 7
fi
}
case "$1" in case "$1" in
start) start)
if [ -z "$(pgrep -f -n $JARNAME)" ]; then server_start
log_daemon_msg "Starting Minecraft Server" "Craftbukkit" ;;
sudo -u ${USER} tmux new-session -d -s craftbukkit-console "cd ${SRVPATH}; java ${JAVAOPTS} -jar ${JARNAME}" >/dev/null 2>&1
sleep 1
if [ $? -gt 0 ]; then # Tmux did not start
log_failure_msg
exit 1
elif [ -z "$(pgrep -f -n $JARNAME)" ]; then # Tmux stared, but Java did not
log_failure_msg
exit 1
else
log_success_msg
fi
else
log_warning_msg "Craftbukkit is already running!"
exit 1
fi
;;
stop) stop)
if [ -n "$(pgrep -f -n $JARNAME)" ]; then server_stop
log_daemon_msg "Stopping Minecraft Server" "Craftbukkit" ;;
sudo -u ${USER} tmux send-keys -t craftbukkit-console "say NOTICE: Server shutting down in 5 seconds!" C-m >/dev/null 2>&1
sleep 5 restart)
sudo -u ${USER} tmux send-keys -t craftbukkit-console "save-all" C-m >/dev/null 2>&1 server_stop
sleep 1 server_start
sudo -u ${USER} tmux send-keys -t craftbukkit-console "stop" C-m >/dev/null 2>&1 ;;
sleep 10
if [ -n "$(pgrep -f -n $JARNAME)" ]; then
log_failure_msg
exit 1
else
log_success_msg
fi
else
log_warning_msg "Craftbukkit is not running!"
exit 7
fi
;;
*) *)
echo "usage: $0 {start|stop|restart|status} user" echo "usage: $0 {start|stop|restart|status}"
esac esac
exit 0 exit 0