Estou tentando executar um servidor minecraft no meu servidor unRAID.
O servidor será executado no shell e ficará sentado, aguardando a entrada. Para pará-lo, preciso digitar 'stop' e pressionar enter, para salvar o mundo e sair graciosamente, e estou de volta ao shell. Tudo funciona se eu executá-lo via telnet na caixa NAS, mas quero executá-lo diretamente na caixa.
isto é o que eu tive anteriormente como primeira tentativa:
#define USER_SCRIPT_LABEL Start Minecraft server
#define USER_SCRIPT_DESCR Start minecraft server. needs sde2 mounted first
cd /mnt/disk/sde2/MCunraid
screen -d -m -S minecraft /usr/lib/java/bin/java -Xincgc -Xmx1024M -jar CraftBukkit.jar
MCunraid é a pasta na qual eu tenho o Craftbukkit.jar e todos os arquivos do mundo etc. Se eu digitar essa linha de tela diretamente, a tela será configurada desanexada e o servidor será iniciado. Se eu executar essa linha de dentro do script, não parece configurar uma tela
para parar o servidor, preciso 'digitar' em STOP e pressionar enter. Minha abordagem foi
screen -S minecraft -X stuff "stop $(echo -ne '\r')"
para enviar para a tela 'minecraft' o texto para e um retorno de carro. Mas isso não funciona, mesmo que eu o digite diretamente na linha de comando. Mas se eu 'screen -r' puder acessar a tela com o servidor em execução, digite 'stop' e ele será encerrado corretamente.
O servidor funcionará bem se eu fizer o telnet e fazê-lo manualmente, só preciso executá-lo sem estar conectado no meu computador remoto.
#!/bin/bash
e set -x
na parte superior do script e mostre-nos a saída de rastreamento do script. Pode ser necessário procurar na documentação unMENU para descobrir para onde vai essa saída.
screen
não conseguiu iniciar? Tente adicionarset -x
na parte superior do script (logo após a#!
linha) e relate a saída do rastreio ao executar o script.