1

For the past 3 weeks, my 10 year old daughter begged me to build her a a minecraft/bukkit server, and I am attempting to do so on my on VPS running Centos6.4. I am following https://forums.bukkit.org/threads/tutorial-centos-bukkit-installation.56371/, except that I installed Oracle Java JDK-7u45 instead of JDK-7u2. I have a regular user called "minecraft" where I am trying to run the service under.

On step 6, it describes creating /etc/init.d/minecraft which I have done so (script duplicated below). I assume I need the owner of the file to be "minecraft" and not "root" if I want the service to be run as user "minecraft", correct?

On step 10, it shows to start the service by running service minecraft start. When doing so, I get the following. Any suggestions why?

[minecraft@vps ~]$ service minecraft start
craftbukkit.jar was not running... starting.
Could not start craftbukkit.jar.
[minecraft@vps ~]$ su
Password:
[root@vps minecraft]# service minecraft start
craftbukkit.jar was not running... starting.
Could not start craftbukkit.jar.
[root@vps minecraft]#

EDIT. Do I need to replace craftbukkit.jar with the full name craftbukkit-1.6.4-R1.0.jar in either of the two lines of /etc/init.d/minecraft? Also, does the second line need to be modified in regards of the java configuration?

SERVICE='craftbukkit.jar'
....
INVOCATION="java -Xmx1024M -Xms1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts -jar craftbukkit.jar nogui"

/etc/init.d/minecraft

#!/bin/bash
# /etc/init.d/minecraft
# version 0.3.2 2011-01-27 (YYYY-MM-DD)

### BEGIN INIT INFO
# Provides:  minecraft
# Required-Start: $local_fs $remote_fs
# Required-Stop:  $local_fs $remote_fs
# Should-Start:  $network
# Should-Stop:    $network
# Default-Start:  2 3 4 5
# Default-Stop:  0 1 6
# Short-Description:    Minecraft server
# Description:    Starts the minecraft server
### END INIT INFO

#Settings
SERVICE='craftbukkit.jar'
USERNAME="minecraft"
MCPATH='/home/minecraft/bukkit'
CPU_COUNT=1
INVOCATION="java -Xmx1024M -Xms1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts -jar craftbukkit.jar nogui"
BACKUPPATH='/home/minecraft/archive'

ME=`whoami`
as_user() {
  if [ $ME == $USERNAME ] ; then
    bash -c "$1"
  else
    su - $USERNAME -c "$1"
  fi
}

mc_start() {
  if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  then
    echo "Tried to start but $SERVICE was already running!"
  else
    echo "$SERVICE was not running... starting."
    cd $MCPATH
    as_user "cd $MCPATH && screen -dmS minecraft $INVOCATION"
    sleep 7
    if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
    then
      echo "$SERVICE is now running."
    else
      echo "Could not start $SERVICE."
    fi
  fi
}

mc_saveoff() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
                echo "$SERVICE is running... suspending saves"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER BACKUP STARTING. Server going readonly...\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-off\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
                sync
                sleep 10
        else
                echo "$SERVICE was not running. Not suspending saves."
        fi
}

mc_saveon() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
                echo "$SERVICE is running... re-enabling saves"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-on\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER BACKUP ENDED. Server going read-write...\"\015'"
        else
                echo "$SERVICE was not running. Not resuming saves."
        fi
}

mc_stop() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
                echo "$SERVICE is running... stopping."
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"say SERVER SHUTTING DOWN IN 10 SECONDS. Saving map...\"\015'"
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"save-all\"\015'"
                sleep 10
                as_user "screen -p 0 -S minecraft -X eval 'stuff \"stop\"\015'"
                sleep 7
        else
                echo "$SERVICE was not running."
        fi
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
                echo "$SERVICE could not be shut down... still running."
        else
                echo "$SERVICE is shut down."
        fi
}


mc_update() {
  if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
  then
    echo "$SERVICE is running! Will not start update."
  else
    MC_SERVER_URL=http://minecraft.net/`wget -q -O - http://www.minecraft.net/download.jsp | grep minecraft_server.jar\ | cut -d \" -f 2`
    as_user "cd $MCPATH && wget -q -O $MCPATH/minecraft_server.jar.update $MC_SERVER_URL"
    if [ -f $MCPATH/minecraft_server.jar.update ]
    then
      if `diff $MCPATH/minecraft_server.jar $MCPATH/minecraft_server.jar.update >/dev/null`
        then
          echo "You are already running the latest version of $SERVICE."
        else
          as_user "mv $MCPATH/minecraft_server.jar.update $MCPATH/minecraft_server.jar"
          echo "Minecraft successfully updated."
      fi
    else
      echo "Minecraft update could not be downloaded."
    fi
  fi
}

mc_backup() {
  echo "Backing up minecraft world"
  if [ -d $BACKUPPATH/world_`date "+%Y.%m.%d"` ]
  then
    for i in 1 2 3 4 5 6
    do
      if [ -d $BACKUPPATH/world_`date "+%Y.%m.%d"`-$i ]
      then
        continue
      else
        as_user "cd $MCPATH && cp -r world $BACKUPPATH/world_`date "+%Y.%m.%d"`-$i"
        break
      fi
    done
  else
    as_user "cd $MCPATH && cp -r world $BACKUPPATH/world_`date "+%Y.%m.%d"`"
    echo "Backed up world"
  fi
  echo "Backing up the minecraft server executable"
  if [ -f "$BACKUPPATH/minecraft_server_`date "+%Y.%m.%d"`.jar" ]
  then
    for i in 1 2 3 4 5 6
    do
      if [ -f "$BACKUPPATH/minecraft_server_`date "+%Y.%m.%d"`-$i.jar" ]
      then
        continue
      else
        as_user "cd $MCPATH && cp minecraft_server.jar \"$BACKUPPATH/minecraft_server_`date "+%Y.%m.%d"`-$i.jar\""
        break
      fi
    done
  else
    as_user "cd $MCPATH && cp minecraft_server.jar \"$BACKUPPATH/minecraft_server_`date "+%Y.%m.%d"`.jar\""
  fi
  echo "Backup complete"
}


#Start-Stop here
case "$1" in
  start)
    mc_start
    ;;
  stop)
    mc_stop
    ;;
  restart)
    mc_stop
    mc_start
    ;;
  update)
    mc_stop
    mc_backup
    mc_update
    mc_start
    ;;
  backup)
    mc_saveoff
    mc_backup
    mc_saveon
    ;;
  status)
    if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
    then
      echo "$SERVICE is running."
    else
      echo "$SERVICE is not running."
    fi
    ;;

  *)
  echo "Usage: /etc/init.d/minecraft {start|stop|update|backup|status|restart}"
  exit 1
  ;;
esac

exit 0
5
  • I noticed you're trying to run bukkit. Does this work with the vanilla minecraft server? Also, home servers are laggy. You should get a dedicated server. They're only about $4/month from places like minecrack.org and come setup.
    – Jon
    Oct 27, 2013 at 18:56
  • @chipperyman573. Haven't tried vanilla minecraft. Does one need to be first set up? Oct 27, 2013 at 19:16
  • Within /etc/init.d/minecraft, do I need to include the full craftbukkit-1.6.4-R1.0.jar name? Also, is INVOCATION="java -Xmx1024M -Xms1024M -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalPacing -XX:ParallelGCThreads=$CPU_COUNT -XX:+AggressiveOpts -jar craftbukkit.jar nogui" incorrect? Oct 27, 2013 at 20:07
  • Get the vanilla server from here, under Server Download. Try just running that. You won't have plugins but it'll be a good indicator of if it's an issue with minecraft running or not.
    – Jon
    Oct 27, 2013 at 20:12
  • I'm a nobb. Had the jar file in the wrong directory. I have never dealt with jar files before, and better learn. Thanks for your help regardless. Oct 27, 2013 at 21:09

1 Answer 1

0

Easiest to follow way to setup your own minecraft server can be found here.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .