Estou tentando fazer um servidor local do Minecraft funcionar e, embora haja um milhão e dois tutoriais por aí, estou tentando dar um passo além do escopo desses tutoriais e aprender ao mesmo tempo.
Eu encontrei um tutorial que coloca um arquivo system.service para iniciá-lo na inicialização. Legal. Então, eu encontrei outro que usa a tela, o que vai me ajudar imensamente como agora tenho acesso ao console para ele. E é aí que estou tendo problemas.
Eu criei o arquivo forge-server.service no diretório pai do servidor Forge (permite mods, no caso de você não saber), então eu usei "ln" para soltar um link em / etc / systemd / system . E falha ao carregar.
Eu obtenho o código = status exited = 1 e não consigo iniciar. Eu não sei o que está acontecendo. Na metade do caminho, não encontro nenhuma sessão de tela. Então, simplesmente falha.
[Unit]
Description=Forge Server %i
[Service]
WorkingDirectory=/home/<USER>/minecraft/forge-server/%i
User=<USER>
Group=<USER>
Restart=always
ExecStart=/usr/bin/screen -DmS mc-%i /usr/bin/java -Xmx1536M -jar forge*.jar nogui
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "say SERVER SHUTTING DOWN. Saving map..."15'
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "save-all"15'
ExecStop=/usr/bin/screen -p 0 -S mc-%i -X eval 'stuff "stop"15'
ExecStop=/bin/sleep 2
[Install]
WantedBy=multi-user.target
Se eu não especificar o diretório de trabalho como tal, recebo CHDIR200.
Se eu executar o Forge * .jar na minha sessão de SSH / tela, ele funcionará bem. Você pode por favor me avisar onde eu errei e como consertar esse script?
EDIT: Eu percebi isso. Este é o meu novo arquivo .service;
#!/bin/sh -
[Unit]
Description=Forge Server
[Service]
WorkingDirectory=/home/<USER>/minecraft/forge-server/
User=<USER>
Group=<USER>
Restart=on-failure
ExecStart=/usr/bin/screen -DmS forge /usr/bin/java -Xmx1536M -jar forge-1.10.2-12.18.2.2099-universal.jar nogui
ExecStop=/usr/bin/screen -p 0 -S forge -X eval 'stuff "say SERVER SHUTTING DOWN. Saving map..."15'
ExecStop=/usr/bin/screen -p 0 -S forge -X eval 'stuff "save-all"15'
ExecStop=/usr/bin/screen -p 0 -S forge -X eval 'stuff "stop"15'
ExecStop=/bin/sleep 2
[Install]
WantedBy=multi-user.target