Existem quatro partes para isso.
- GNU
screen
- um script para iniciar o minecraft e reiniciá-lo se ele morrer (por exemplo, chamar esse
start-minecraft.sh
) - um script de inicialização para executar o script
start-minecraft.sh
dentro da tela. Ele deve usarsu
ousudo
para executarstart-minecraft.sh
sob o uid que possuirá a sessão de tela e o processo do servidor de minecraft. Isso pode ser executado, por exemplo, em / etc / inittab ou /etc/rc.local. - um trabalho cron para matar o servidor de minecraft a cada duas horas.
start-minecraft.sh
deve ser um simples invólucro de loop infinito em torno do minecraft, talvez com um breve intervalo entre as reinicializações do mc. Uma versão minimalista do script seria algo assim:
#! /bin/sh
# set PATH and other env variables here, if required
# ...
while true; do
java -Xincgc -Xms1024M -jar craftbukkit-1.6.4-b2882.jar
sleep 30
done
Para executar esse script dentro de screen
, uma maneira de fazer isso é assim:
screen -d -RR minecraft -t minecraft /path/to/start-minecraft.sh
Isso diz a screen
para anexar a uma sessão de tela existente chamada "minecraft", se existir, ou criar uma nova com esse nome, e criar uma única guia dentro da tela com o título "minecraft" e execute o script start-minecraft.sh dentro disso.
Se a tela de execução do usuário tiver um arquivo ~/.screenrc
, talvez você também queira substituí-lo com um arquivo de configuração ou um personalizado usando a opção -c
da tela - por exemplo, screen -c /dev/null ...
O que nos leva à segunda maneira de iniciar a tela. Crie um arquivo .screenrc
personalizado para minecraft que inclua as duas linhas a seguir:
screen -t bash 1 bash
screen -t minecraft 0 /path/to/start-minecraft.sh
Isto irá criar duas "janelas" dentro da tela, uma executando bash, a outra executando minecraft. Ele inicia minecraft por último e na janela 0, então será o primeiro mostrado quando você se conectar a ele.
Qualquer método usado para iniciar a tela, você pode anexar manualmente a esta sessão de tela mais tarde (por exemplo, do seu terminal ou por uma conexão ssh) com screen -d -RR minecraft
.
O último método (custom ~ / .screenrc) é o preferido. Se o start-minecraft.sh
morrer (por exemplo, porque você o matou para colocar temporariamente o servidor de minecraft), você pode reiniciá-lo apenas criando uma nova "janela" em screen
e executando start-minecraft.sh manualmente.