¿Cómo puedo crear una nueva sesión de pantalla y ejecutar un comando, pero dejar la pantalla ahí?

¿Cómo puedo crear una nueva sesión de pantalla y ejecutar un comando, pero dejar la pantalla ahí?

Hola chicos, estoy intentando que mi servidor de Minecraft se inicie con mi servidor. Usaré cron una vez que descubra cuáles son los comandos adecuados. Quiero que Minecraft comience en una nueva pantalla titulada "Minecraft" y quiero que se envíe un comando a esta sesión que inicie el servidor. Todas las mañanas a las 3 a.m. quiero enviar el comando "detener" para detener el servidor de Minecraft y luego enviar el comando para iniciar el servidor (Minecraft tiene errores si no se reinicia de vez en cuando). Estaba jugando con las opciones de la pantalla y conseguí que Minecraft se iniciara durante unos segundos y la pantalla lo cerró. Por lo que estoy leyendo en línea, este comando debería funcionar.

screen -dmS Minecraft java -Xmx12G -Xms12G -jar /home/alan/minecraft/forge-1.16.5-36.2.30.jar --nogui

Quiero volver a conectarme a esta sesión para escribir comandos o reiniciar el servidor de Minecraft porque hice un cambio. Todos los comandos que ejecuté no funcionaron. Escribí "screen -ls" y mi sesión de "Minecraft" no aparece. Sé cómo usar cron, pero claramente no entiendo la pantalla. Tenemos cortes de energía frecuentes en mi área, por lo que hago que un UPS apague mi servidor y una Raspberry PI lo vuelva a encender cuando se restablece la energía. Sería bueno incluir Minecraft en mi startup. Después de eso, todos mis servicios se iniciarán y finalizarán automáticamente sin mi intervención.

Respuesta1

Desde que nombraste tu pantalla Minecraft,

# Tell Minecraft to gracefully stop.
# Ending Minecraft will terminate Java
# systemd will kill Screen after the 10-second delay. No explicit kill for Screen needed
screen -p 0 -S Minecraft -X eval 'stuff "say SERVER SHUTTING DOWN. Saving map..."\\015'
screen -p 0 -S Minecraft -X eval 'stuff "save-all"\\015'
screen -p 0 -S Minecraft -X eval 'stuff "stop"\\015'
sleep 10

Es fácil empaquetar sus comandos en un servicio systemd, que también le brinda inicio automático en el arranque, monitoreo de estado y control sencillo de inicio/detención/reinicio usando systemctl.

Por lo general, no es necesario molestarse en dejar la pantalla abierta, ya que todos los resultados se registran y todos los comandos del servidor se pueden ingresar a través de la consola de administración.

Escribí una publicación de blog completa sobre todo el proceso hace un par de años: es la primera sección dehttp://cheesehead-techblog.blogspot.com/2019/08/toggling-minecraft-server-using-systemd.html

información relacionada