From 00b6edbe358f266b88bcb13952cd3366aed26fbb Mon Sep 17 00:00:00 2001 From: Marcel Hanraets Date: Thu, 10 Jul 2014 05:47:17 +0200 Subject: [PATCH] Initial commit --- craftbukkit | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 craftbukkit diff --git a/craftbukkit b/craftbukkit new file mode 100644 index 0000000..8ed8d9f --- /dev/null +++ b/craftbukkit @@ -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