Estoy tratando de forzar a la pantalla GNU a crear un terminal "virtual", sin conectarlo, ejecutar el script dentro y NO terminar la sesión una vez que el script termina.
Intenté muchas combinaciones, incluyendo:
screen -dmS udplistener /share/Sys/autorun/start_udp_listeners.sh
o
screen -S udplistener -X /share/Sys/autorun/start_udp_listeners.sh
y ninguno de ellos funcionó. O recibo sesión sin script ejecutado, el script se ejecuta, pero la sesión finaliza una vez que finaliza o aparece el error "No se encontró sesión de pantalla".
Lo que básicamente estoy tratando de hacer es ejecutar el escucha UDP, escrito en PHP y hacerlo funcionar en bucle infinito (no interrumpa la escucha). Sí, podría ejecutar el script PHP &
al final, obligando a PHP CLI a ejecutarse como daemon. El problema es que estoy usando un pedazo de basura llamado servidor (QNAP: ¡nunca, nunca compre esta basura!) Que parece estar ignorando esto. Tan pronto como cierre la sesión de SSH, los scripts se detienen.
Entonces screen
parece ser la única opción. Pero no puedo entender, ¿por qué termina la sesión una vez que finaliza el comando ejecutado o finaliza el script?
EDITAR : También he probado el ejemplo que se encuentra en Internet:
screen -dmS name
screen -S name -p windowname -X stuff 'mc
'
No falta! Después de adjuntarlo ( screen -R name
) veo que Midnight Commander NO HA sido ejecutado. Aunque el autor de ejemplo dijo, lo será.
screen
cierre? Por cierto: ¡todavía no entiendo la idea! Si llamo screen -dmS name
, creo una ventana separada, que tampoco tiene nada que hacer. ¡Pero no se cierra automáticamente! Pero cuando quiero ejecutar algo en esa pantalla separada, termina una vez que se realiza la ejecución. ¿Por qué? No veo lógica aquí. ¿Puede tener ventana sin hacer nada, pero no puede tener ventana haciendo algo y luego sin hacer nada?
&
al final), debido al servidor con errores (QNAP), se terminan cuando finaliza la sesión (me dijeron, no deberían en Linux normal, si se ejecutan con &
). Por lo tanto, no estoy buscando hacer nada después de start_udp_listeners.sh
finalizar, solo cómo evitar que se termine la sesión. Mientras no sea así, mis oyentes PHP funcionan bien.
screen
, solo crea una ventana para ejecutar un solo comando. Cuando el comando sale, la ventana se cierra yscreen
no queda nada que hacer, por lo que sale.