Initial commit

This commit is contained in:
Marcel Hanraets 2014-07-10 05:47:17 +02:00
commit 00b6edbe35

69
craftbukkit Normal file
View File

@ -0,0 +1,69 @@
#!/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
# @TODO
# - Implement restart
# - Implement status
# - Evaluate commandline options
# Config START
USER="craftbukkit"
SRVPATH="/opt/craftbukkit"
WORLDPATH="/opt/craftbukkit/world/"
LOGPATH="/opt/craftbukkit/log/server.log"
JAVAOPTS="-d64 -server -Xms1G -Xmx1G -XX:+UseG1GC -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:+UseLargePages -XX:TargetSurvivorRatio=90 -XX:MaxGCPauseMillis=200 -XX:MaxPermSize=256m"
JARNAME="craftbukkit.jar"
# Config END
# We want LSB functions here
. /lib/lsb/init-functions
case "$1" in
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
if [ $? -gt 0 ]; then
log_failure_msg
exit 1
else
log_success_msg # @FIXME Success is returned when the java command fails
fi
else
log_warning_msg "Craftbukkit is already running!"
exit 1
fi
;;
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 "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"
esac
exit 0