Quiero que se ejecute un archivo .jar cada vez que se inicia el servidor (estamos usando un VPS), así que edité crontab usando crontab -e
y luego agregando @reboot bash /home/bash/startserver.sh
. Pero ni siquiera he llegado al punto en que el guión funcione en absoluto.
Aquí está mi guión:
#!/bin/bash
screen -S bukkit
cd $HOME/server
java -jar bukkit.jar
La razón que necesito usar screen
es porque cuando inicio bukkit.jar, entra en una consola donde puedo ingresar más comandos para ese programa (aunque estoy seguro de que todos están familiarizados con Minecraft y sus servidores en este sitio, , jaja), pero necesito poder hacer otros comandos como root y para otros programas mientras se está ejecutando, e incluso cerrar mi sesión PuTTY.
El único problema es que cuando se ejecuta este script, crea una sesión de pantalla, pero su ID no aparece en la lista screen -ls
, ya que la ID está en blanco. Más bien, tengo que ir a /run/screen/S-root
buscar la identificación y luego usar la típica screen -X -S $name quit
en ella.
Tal vez esto ni siquiera sea posible, o tal vez haya una forma más simple de hacerlo (me encantaría más simple), pero no puedo entender por qué esto no está funcionando. Y si esto es posible, ¿es posible volver a unirse a una sesión screen -S bukkit
cuando se ejecuta un script bash? (Múltiples preguntas, supongo, ¡pero muchas gracias por tu ayuda! (Paréntesis))
bukkit.sh
script funcione en la línea de comando. Luego, verifique quescreen -S bukkit path/to/bukkit.sh
funcione. Luego, verifique quescreen -d -m -S bukkit path/to/bukkit.sh
funcione. Finalmente, configura cron. Intente lo más simple primero y tome pequeños pasos para comprender qué pasos se rompen. Dime eso y el mensaje de error que obtienes si necesitas ayuda.Debería hacer
update-rc.d
lo siguiente para activar el servicio al iniciar:fuente