#!/bin/bash
#
# minecraft.sh  - to start / stop the minecraft server 
#
# http://minecraft.gamepedia.com/Tutorials/Setting_up_a_server
#

### BEGIN INIT INFO
# Provides:		minecraft1
# Required-Start:	$local_fs $network $syslog
# Required-Stop:	$local_fs $network $syslog
# Default-Start:	2 3 4 5
# Default-Stop:		0 1 6
# Short-Description:	Minecraft server 1
### END INIT INFO

JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/jre/
JAVA=$JAVA_HOME/bin/java

SERVER_HOME=/home/minecraft
MINECRAFT_JAR=$SERVER_HOME/minecraft.jar
PID_FILE=$SERVER_HOME/pidfile

umask 022

test -f "$JAVA" || exit 0 
test -f "$MINECRAFT_JAR" || exit 0 


case $1 in
start)
    echo "Starting minecraft server"
    cd "$SERVER_HOME"
    sudo -u minecraft $JAVA -Xms1300M -Xmx1500M -Djava.awt.headless=true -jar "$MINECRAFT_JAR" nogui &> console.log &
    echo $! > "$PID_FILE"
    echo "done"    
    ;;
stop)
    echo "Stopping minecraft server"
    # first make a gentle kill 
    kill $(cat "$PID_FILE")
    # then sleep and make a hard kill 
    sleep 4s
    kill -9 $(cat "$PID_FILE") 2> /dev/null
    rm "$PID_FILE"
    echo "done"
    ;;
reload)
    $0 stop
    $0 start
    ;;
status)
    if kill -0 $(cat "$PID_FILE") ; then 
    	echo "Minecraft process is running"
    else
    	echo "Minecraft process has stopped"
    fi
    ;;
*)
    echo "Usage: $0 start | stop | reload | status"
    ;;
esac 

exit 0 



