Skip to content

Instantly share code, notes, and snippets.

@lordfriend
Created July 29, 2013 07:57
Show Gist options
  • Save lordfriend/6102756 to your computer and use it in GitHub Desktop.
Save lordfriend/6102756 to your computer and use it in GitHub Desktop.
control a server via screen on linux
#!/bin/sh
# Controls the minecraft server
#####################
#START CONFIGURATION#
#####################
# Replace the location path with the folder containing your CraftBukkit.jar or minecraft_server.jar file
LOCATION="/srv/craftbukkit"
#Replace CraftBukkit with the name of the .jar file you use
MINECRAFT="craftbukkit-beta.jar"
# Path to your java executable (or just "java" if it's already in your $PATH)
JAVA="java"
#Java Options - Replace with options that are sane and stable for your server
JAVAOPTS="-Xms1024M -Xmx1024M -jar"
###################
#END CONFIGURATION#
###################
#Determine whether or not Minecraft is already running
RUNNING=`screen -ls | grep minecraft`
case "$1" in
'start')
cd $LOCATION
RUNNING=`screen -ls | grep minecraft`
if [ "$RUNNING" = "" ]
then
screen -dmS minecraft $JAVA $JAVAOPTS $MINECRAFT nogui -o false
fi
;;
'stop')
screen -x minecraft -X stuff "`printf "kickall Restarting server! Try again in 60 seconds!\r"`"
sleep 2
screen -x minecraft -X stuff `printf "stop\r"`
;;
'restart')
screen -x minecraft -X stuff "`printf "kickall Restarting server! Try again in 60 seconds!\r"`"
sleep 2
screen -x minecraft -X stuff `printf "stop\r"`
RUNNING=`screen -ls | grep minecraft`
cd $LOCATION
until [ "$RUNNING" = "" ]
do
RUNNING=`screen -ls | grep minecraft`
done
screen -dmS minecraft $JAVA $JAVAOPTS $MINECRAFT nogui -o false
sleep 1
screen -x minecraft
;;
'view')
screen -x minecraft
;;
'sv')
cd $LOCATION
if [ "$RUNNING" = "" ]
then
screen -dmS minecraft $JAVA $JAVAOPTS $MINECRAFT nogui -o false
fi
sleep 1
screen -x minecraft
;;
*)
echo "Usage: $0 { start | stop | restart | view | sv (start & view) }"
;;
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment