Tutorials/Ubuntu startup script

This is a simple startup-script for the upstart mechanism used by ubuntu-servers. It won't give you a console, which I don't consider a problem since there's an ingame console anyway. It also doesn't update Minecraft, I believe there's a built-in updater coming on the way.

Prerequisites
sudo adduser --system --no-create-home --home /srv/minecraft-server minecraft sudo addgroup --system minecraft sudo adduser minecraft minecraft # this adds user "minecraft" the group "minecraft"
 * set up a user and group for minecraft so that it doesn't run as root

sudo chown -R minecraft /srv/minecraft-server sudo nano /etc/init/minecraft-server
 * hand your server-installation over to our new user, I have mine in /srv/minecraft-server
 * create and edit the start/stop script creating a new file under /etc/init/minecraft-server (NOT /etc/init.d but /etc/init (without the .d) )

and pasting the following into it. Don't forget to change the directory after "chdir" to your installation
 * 1) description "start and stop the minecraft-server"

start on runlevel [2345] stop on runlevel [^2345]

console log chdir YOUR_INSTALLATION_DIRECTORY setuid minecraft setgid minecraft

respawn respawn limit 20 5

exec /usr/bin/java -Xms1536M -Xmx2048M -jar minecraft_server.jar nogui

Above Explained (Note, this script isn't usable.):
 * 1) description "start and stop the minecraft-server" <-- Adds a tip to what this script does.

start on runlevel [2345] <-- Tells Ubuntu when to start the server. Runlevels 2, 3, 4, and 5 are the "normal operation". stop on runlevel [^2345] <-- Tells Ubuntu when to stop the server. The ^ means NOT.

console log <-- Logs the actions taken chdir YOUR_INSTALLATION_DIRECTORY <-- Changes the active directory to the installation dir. setuid minecraft <-- Sets the UserID to "minecraft" (acts like Minecraft user) setgid minecraft <-- Sets the GroupID to "minecraft" (acts like Minecraft group)

respawn <-- Allows the program to "respawn" (restart) when it dies unexpectedly. respawn limit 20 5 <-- Allows the program to "respawn" 20 times in 5 seconds.

exec /usr/bin/java -Xms1536M -Xmx2048M -jar minecraft_server.jar nogui <-- Below... 'exec' > Executes command '/usr/bin/java' > Invokes Java. '-Xms1536M' > Sets minimum allocated memory limit. '-Xmx2048M' > Sets MAXIMUM allowable memory limit. '-jar minecraft-server.jar' > Tells Java to run the jarfile minecraft_server.jar 'nogui' > Tells minecraft-server.jar to run without a GUI. (Graphical screen).

Since Ubuntu 13.10 having both --stop "stop" and --start causes a errors, remove the --stop "stop" and use ps -ef to get PID and use kill PID to close it if you require it shut down to change settings.

sudo update-rc.d minecraft-server defaults If you get an error saying the file does not exsist, try moving the minecraft-server file to /etc/init.d/ Also if after running sudo start minecraft-server says that they is no job for it, try running "sudo /etc/init.d/minecraft-server start"
 * Now install the start/stop to the default runlevels by running

Usage
sudo start minecraft-server sudo stop minecraft-server
 * to start the server
 * to stop the server

Troubles?
You can check the server log by using: sudo tail /var/log/upstart/minecraft-server.log

If that doesn't help, just contact me: User:Cel1ne