Estoy tratando de ejecutar un servidor de Minecraft en mi servidor no RAID.
El servidor se ejecutará en el shell y luego se sentará allí esperando la entrada. Para detenerlo, necesito escribir 'detener' y presionar enter, y luego salvará el mundo y saldrá con gracia, y estoy de vuelta en el shell. Todo eso funciona si lo ejecuto a través de Telnet en la caja NAS, pero quiero ejecutarlo directamente en la caja.
Esto es lo que tuve previamente como primer intento:
#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 es la carpeta donde tengo el Craftbukkit.jar y todos los archivos del mundo, etc. Si escribo esa línea de pantalla directamente, la pantalla se desconecta y el servidor se inicia. Si ejecuto esa línea desde el script, no parece configurar una pantalla
para detener el servidor, necesito 'escribir' en STOP y luego presionar enter. Mi enfoque fue
screen -S minecraft -X stuff "stop $(echo -ne '\r')"
para enviar a la pantalla 'minecraft' el texto detenido y un retorno de carro. Pero eso no funciona, incluso si lo escribo directamente en la línea de comando. Pero si 'screen -r' puedo acceder a la pantalla con el servidor en ejecución, escriba 'stop' y se apagará correctamente.
El servidor funciona bien si hago telnet y lo hago manualmente, solo necesito ejecutarlo sin estar conectado desde mi computadora remota.
#!/bin/bash
y set -x
en la parte superior del guión, y muéstrenos el resultado de seguimiento del guión. Es posible que deba buscar en la documentación de unMENU para saber a dónde va esa salida.
screen
no pudo comenzar? Intente agregarset -x
en la parte superior de la secuencia de comandos (justo después de la#!
línea) e informe el resultado del seguimiento cuando ejecute la secuencia de comandos.