Tenemos un proceso de larga ejecución en un servidor remoto que se inicia manualmente de vez en cuando. Desafortunadamente, las conexiones a Internet mueren, los núcleos entran en pánico y la sesión ssh que se usa para conectarse e iniciar el trabajo puede encontrar una gran cantidad de otros desafíos.
La pantalla parece una manera perfecta de garantizar que el proceso no se interrumpa. Sin embargo, confiar en una persona para que siempre recuerde iniciar la pantalla y luego ejecutar el script para iniciar el proceso es un problema a la espera de que suceda. ¿Hay alguna forma del script que pueda verificar para ver si el script se llama desde la pantalla? Si es así, el proceso continuará; de lo contrario, el script saldrá con un mensaje que le indicará al usuario que ejecute la pantalla primero.
fuente
Respuestas:
Hay una variable de entorno para eso. Si se está ejecutando dentro de la pantalla,
$TERM
seráscreen
. Es así de simple; solo haz un if en él. Por ejemplo,hará eco en la barra cuando esté en la pantalla; De lo contrario.
fuente
screen-256color
si el usuario ha configurado el soporte de 256 colores.Mientras trabaja con la pantalla, ¿por qué no ejecuta el script con 'nohup'? Esto también asegurará que continúe ejecutándose si se desconecta.
Da salida a un archivo de forma predeterminada, por lo que puede usar otras herramientas para monitorear la salida del script si lo desea.
fuente