├── with_screen ├── start-server.sh ├── minecraft.service └── README.md ├── minecraft.service └── README.md /with_screen/start-server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Create screen "minecraft" 4 | screen -dmS minecraft 5 | 6 | # Start the server in that screen 7 | screen -S minecraft -X stuff '/usr/bin/java -Xmx1G -jar /var/minecraft/server/server.jar nogui\n' 8 | -------------------------------------------------------------------------------- /minecraft.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Minecraft Server 3 | 4 | Wants=network.target 5 | After=network.target 6 | 7 | [Service] 8 | User=minecraft 9 | Group=minecraft 10 | Nice=5 11 | KillMode=control-group 12 | SuccessExitStatus=0 1 13 | 14 | ProtectHome=true 15 | ProtectSystem=full 16 | PrivateDevices=true 17 | NoNewPrivileges=true 18 | PrivateTmp=true 19 | InaccessibleDirectories=/root /sys /srv -/opt /media -/lost+found 20 | ReadWriteDirectories=/var/minecraft/server 21 | WorkingDirectory=/var/minecraft/server 22 | ExecStart=/usr/bin/java -Xmx1G -jar server.jar nogui 23 | 24 | [Install] 25 | WantedBy=multi-user.target 26 | -------------------------------------------------------------------------------- /with_screen/minecraft.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Minecraft Server 3 | 4 | Wants=network.target 5 | After=network.target 6 | 7 | [Service] 8 | User=minecraft 9 | Group=minecraft 10 | Nice=5 11 | KillMode=control-group 12 | RemainAfterExit=yes 13 | SuccessExitStatus=0 1 14 | 15 | ProtectHome=true 16 | ProtectSystem=full 17 | PrivateDevices=true 18 | NoNewPrivileges=true 19 | PrivateTmp=true 20 | InaccessibleDirectories=/root /sys /srv -/opt /media -/lost+found 21 | ReadWriteDirectories=/var/minecraft/server 22 | WorkingDirectory=/var/minecraft/server 23 | ExecStart=bash start-server.sh 24 | 25 | [Install] 26 | WantedBy=multi-user.target 27 | -------------------------------------------------------------------------------- /with_screen/README.md: -------------------------------------------------------------------------------- 1 | # Prerequisites 2 | * user "minecraft" 3 | * member of group "minecraft" (`groupadd -r minecraft`) 4 | * home at /var/minecraft/ (`useradd -r -g minecraft -d "/var/minecraft" -s "/bin/bash" minecraft`) 5 | * ownes /var/minecraft/server (`chown minecraft.minecraft -R /var/minecraft/`) 6 | * server.jar at /var/minecraft/server/server.jar 7 | 8 | # Usage 9 | 1. Write the minecraft.service file in /etc/systemd/system/ 10 | 1. Write the start-server.sh script in /var/minecraft/server/ 11 | 1. Run `systemctl daemon-reload` 12 | 1. Use normal systemd commands to start/stop/enable the minecraft server. (https://wiki.ubuntuusers.de/systemd/systemctl/) 13 | 14 | ## Connecting to server console 15 | 1. Switch to user "minecraft" (`sudo su minecraft`) 16 | 1. Run `screen -r minecraft` 17 | 1. Disconnect using `ctrl + a` followed by `d` (https://wiki.ubuntuusers.de/Screen/) 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # minecraft-systemd-service-file 2 | Systemd service file to start/stop/enable a minecraft server. If you want to connect to the server console later, use the "with screen" solution. 3 | 4 | ## Prerequisites 5 | * user "minecraft" 6 | * member of group "minecraft" (`groupadd -r minecraft`) 7 | * home at /var/minecraft/ (`useradd -r -g minecraft -d "/var/minecraft" -s "/bin/bash" minecraft`) 8 | * ownes /var/minecraft/server (`chown minecraft.minecraft -R /var/minecraft/`) 9 | * server.jar at /var/minecraft/server/server.jar 10 | 11 | ## Usage Without Screen 12 | 1. Write the minecraft.service file in /etc/systemd/system/ 13 | 1. Run `systemctl daemon-reload` 14 | 1. Use normal systemd commands to start/stop/enable the minecraft server. (https://wiki.ubuntuusers.de/systemd/systemctl/) 15 | 16 | ## Usage With Screen 17 | 1. Use the files provided in the "with_screen" directory of this repository. 18 | 1. Write the minecraft.service file in /etc/systemd/system/ 19 | 1. Write the start-server.sh script in /var/minecraft/server/ 20 | 1. Run `systemctl daemon-reload` 21 | 1. Use normal systemd commands to start/stop/enable the minecraft server. (https://wiki.ubuntuusers.de/systemd/systemctl/) 22 | 23 | ### Connecting to server console 24 | 1. Switch to user "minecraft" (`sudo su minecraft`) 25 | 1. Run `screen -r minecraft` 26 | 1. Disconnect using `ctrl + a` followed by `d` (https://wiki.ubuntuusers.de/Screen/) 27 | --------------------------------------------------------------------------------