Here’s a recipe for setting up Minecraft server on OS X. Since I don’t fully trust the server not to have some security hole, I want it to run as user nobody so it doesn’t have a lot of permissions. And I also want it to restart automatically when I reboot the computer. Finally I show how to backup the worlds you create.
Making a Basic Private Server in Minecraft: Want an easy way to play Minecraft with your friends without all the trolls and annoying people on public servers? Here is the easiest way to make a basic password-protected server! This is made on a mac. I think it is similar to PC, but I don't kno. The ability to use your Mac Mini as a Minecraft server, web server, FTP, voice chat, remote database(s) and a seemingly endless list of other applications! Excellent customer support (24/7 available!) from the MacStadium support team via our unique ticketing system and Live Chat opportunities.
There’s three parts to this hint.
1) creating the launchDaemon that starts the minecraft server.
2) how to turn it on and off
3) maintaining backups
The first step is to download the minecraft server jar file from the Mojang website. Currently that site is https://minecraft.net/download but that might change in the future. And currently the jar filename is: minecraft_server.1.6.2.jar, but that will change too.
1) Creating a place for it. When you run the jar the first time it’s going to create a lot of files and subdirectories the in the current working directory (CWD) so we want to create a nice place to do this. It doesn’t matter where this it, but the permissions on the folder do matter. I put mine in /opt
Now if your user name is bob then move the minecraft jar into place:
and make sure the top level folder and executable are owned by root. This will assure that no one can change the jar file without root access. Since the system is going to invoke this file automatically you don’t want it changing with simple user level permissions.
Minecraft is going to run as user nobody, and it will need permission to modify the state folder contents.
2) Creating the launch daemon:
As root, create the file
The file name is not important, but it’s tradition to name the Daemon for website that it came from. You need to create this as root or otherwise assure it’s owned by root:wheel and can be read. It’s not an executable.
The above is plist speak to tell it that it should change into the working directory where we want it to store its data, then launch the java jar with a memory size of 1G. You can adjust the values for your system if that turns out to be too much. It also tells it to run the job as the username nobody. And it will start the server when the Daemon is loaded, which happens either at boot time or if you explicitly tell the daemon to load.
The key thing here is that the paths to the “state” folder and the executable are hardcoded. You must change these paths if you set this up in a different place.
2) testing it. first make sure you have java installed. /usr/bin/java -version if java is installed then this will reply with the java version at that path. If it’s not installed OSX will usually ask you if you want to install java and then automagically do this for you.
as root, (sudo -s -) run the following: launchctl load /Library/LaunchDaemons/net.minecraft.plist
test to see if it worked:
does the output include something like this:
If so then the server jar is running and is running as nobody.
If not then you made a mistake. To help diagnose this try running the command right from the command line. note, at this point you are running the server as root. This is reasonably safe, assuming you trust mojang, to do for a moment just to eliminate the permission issues. If you are nervous, disconnect your ethernet cable for a moment.
You may see some java exceptions printed in the process, but if the program stays running then it’s working. Once it stops printing stuff out, type ctrl-c to kill it. List the current directory (state) and you will see a whole bunch of files and folders have been created. So now you know the program and the paths are right. You’ll need to find the error you made. Most likely a permissions issue.
2) controlling it. to load the server by hand:
it will start when you load it the first time.
Minecraft Server Mac Os X
to stop the server temporarily
Here I used the name not the path. The name is one given in the plist file not the actual file name. Normally you want to make these the same for sanity sake. This command stops the server but it doesn’t remove the autostart Daemon—next boot it will start again.
to restart it after stopping:
to unload the daemon (so it won’t autostart at boot)
Minecraft Bedrock Server For Mac
If you edit the plist file, you need to stop the server and unload the daemon then (re)load the daemon. Otherwise it will ignore your edits till next reboot.
3) backing up the state. from time to time you may want to back up the state of your minecraft world and the server configuration (banned-IP, whitelist, config…)
To do that:
this command will create a snapshot backup of the state of your system. This will look like a copy off the state directory tree and files. But it’s not a copy. It’s a hardlinked image. It doesn’t actually occupy any (significant) disk space unless your world is changed. The command names the new snapshot for the date and time down to the hour.
You can restore an older image to being the current state by deleting the current state folder and moving the state folder from the image folder to the minecraft working directory.
Lex adds: I haven’t tested this one.