Soy un gran admirador de la "pantalla" del programa de Linux que me permite iniciar una pantalla dentro de una sesión SSH que puede permanecer activa después de desconectarme.Más información sobre la pantalla aquí
¿Hay alguna manera de iniciar una sesión de pantalla desde una línea de comando que inicie automáticamente otro programa (o script .sh) dentro de esa sesión de pantalla?
Me gustaría agregar esto a la secuencia de inicio de mi raspberry pi para que siempre haya una pantalla ejecutándose automáticamente ejecutando algún software, incluso si se reinicia el pi, para que pueda ingresar al pi en cualquier momento para ver la salida de ese software.
he miradoesta solución, pero esto sólo ayuda parcialmente. Comienza la pantalla así.
screen -t "df" watch -n 10 df
e inicia con éxito el comando "df".
Sin embargo, cuando el programa termina de ejecutarse, la pantalla se cierra y desaparece.
Me gustaría que la pantalla permaneciera viva incluso si finaliza el programa iniciado originalmente.
Respuesta1
Cambie el comando a:
screen -t "df" bash -c 'watch -n 10 df; exec bash'
bash -c
: Usarfiesta -cpara ejecutar múltiples comandos.
exec bash
: DespuésdfEl comando finaliza, iniciará un shell (bash) que no saldrá hasta que algo externo lo finalice.
Respuesta2
Esto se puede hacer ejecutando los comandos en un shell que permanece ejecutándose después de que se completa el comando.
Por ejemplo, enEvite que la pantalla GNU finalice la sesión una vez que finalice el script ejecutado, la respuesta aceptada hace un
exec bash
después del comando, para iniciar un shell cuando se complete el comando.