Um serviço do systemd é a forma correta de ter algo sempre a funcionar em Linux: arranca sozinho depois de um reinício, volta a levantar-se se cair e guarda tudo o que escreve num log. O exemplo é um servidor de Minecraft, mas serve para qualquer coisa.
1. Um utilizador para o servidor
É melhor que não corra como root: se alguém entrar pelo jogo, não fica com o controlo da máquina inteira.
adduser --disabled-password --gecos "" minecraft
# copia o teu servidor para /home/minecraft/servidor e dá-lhe as permissões:
chown -R minecraft:minecraft /home/minecraft/servidor
2. O ficheiro do serviço
Cria /etc/systemd/system/minecraft.service:
[Unit]
Description=Servidor de Minecraft
After=network-online.target
Wants=network-online.target
[Service]
User=minecraft
WorkingDirectory=/home/minecraft/servidor
ExecStart=/usr/bin/java -Xms4G -Xmx4G -jar paper.jar --nogui
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
Muda o WorkingDirectory e o ExecStart para a pasta e o comando do teu servidor. Usa sempre caminhos completos (o which java diz-te o do Java).
3. Ativa-o
systemctl daemon-reload
systemctl enable --now minecraft
O enable faz com que arranque com o VPS; o --now arranca-o já.
O dia a dia
systemctl status minecraft # está a funcionar?
systemctl restart minecraft # reiniciá-lo
systemctl stop minecraft # pará-lo
journalctl -u minecraft -f # ver a consola em direto (Ctrl + C para sair)
E a consola do jogo?
Como serviço não podes escrever comandos na consola diretamente. Para o administrar usa o RCON (Minecraft, Rust, ARK e Palworld têm) ou os comandos dentro do jogo com permissões de administrador. Ao fazeres systemctl stop, o Minecraft guarda o mundo antes de fechar.
Se preferires continuar a ter uma consola à mão e não te importares de o arrancar tu depois de cada reinício, talvez te sirva melhor o screen ou o tmux.