craftmin/craftbukkit.sh
Marcel Hanraets 2997256a6d Changed config location
Renamed config -> craftbukkit.conf
2014-07-18 20:05:44 +02:00

99 lines
2.3 KiB
Bash

#!/bin/bash
### BEGIN INIT INFO
# Provides: craftbukkit
# Required-Start: mountkernfs $local_fs $network
# Required-Stop: mountkernfs $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Craftbukkit Minecraft Server
# Description: Craftbukkit Minecraft Server
### END INIT INFO
# We want LSB functions here
. /lib/lsb/init-functions
# Load configuration variables
. /etc/craftbukkit.conf
server_running() {
if [ -z "$(pgrep -f -n $JARNAME)" ]; then
return 1
else
return 0
fi
}
server_start() {
if ! server_running; then
log_daemon_msg "Starting Minecraft Server" "Craftbukkit"
sudo -u ${USER} tmux new-session -d -s craftbukkit-console "cd ${SRVPATH}; java ${JAVAOPTS} -jar ${JARNAME} ${JAROPTS}" >/dev/null 2>&1
if [ $? -gt 0 ]; then # Tmux did not start
log_failure_msg
exit 1
elif sleep 1 && ! server_running; then # Tmux started, but Java did not
logger -t craftbukkit -p local0.crit "Craftbukkit start failed"
log_failure_msg
exit 1
else
logger -t craftbukkit -p local0.info "Craftbukkit minecraft server started"
log_success_msg
fi
else
log_warning_msg "Craftbukkit is already running!"
exit 1
fi
}
server_stop() {
if server_running; 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 server_running; then
logger -t craftbukkit -p local0.crit "Craftbukkit shutdown failed"
log_failure_msg
exit 1
else
logger -t craftbukkit -p local0.info "Craftbukkit minecraft server stopped"
log_success_msg
fi
else
log_warning_msg "Craftbukkit is not running!"
exit 7
fi
}
case "$1" in
start)
server_start
;;
stop)
server_stop
;;
restart)
server_stop
server_start
;;
status)
if server_running; then
log_success_msg "Craftbukkit is running"
else
log_failure_msg "Craftbukkit is not running!"
exit 1
fi
;;
*)
log_action_msg "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0