Precisa criar um arquivo systemd e falhar

0

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
    
por afr33sl4ve 23.11.2016 / 18:43

1 resposta

1

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

Eu defini o arquivo jar do forge como executável (chmod + x) e removi todas as variáveis (% i do script inicial que copiei). Agora funciona e lança em uma instância de tela na inicialização.

    
por afr33sl4ve 23.11.2016 / 20:04