¿Cómo puedo hacer que la pantalla ejecute un comando y luego se separe (es decir, automáticamente en un solo script sin más información más allá del inicio inicial del script)? por ejemplo, ejecuto myscript.sh e inicia automáticamente una sesión de pantalla, ejecuta un comando y luego se desconecta.
command-line
script
gnu-screen
darkfeline
fuente
fuente
screen yourcommand
prescindir de-d
y-m
y verás cómo va eso primero.zombie
opción en pantalla. Ponerzombie xy
en tu~/.screenrc
. También debería ser posible habilitarlo para una sesión solo b colocandozombie xy
otro archivo y usando,-c file
pero por alguna razón eso no funciona cuando lo intento. O simplemente usesh -c 'yourcommand;while :;do sleep 9999; done'
Para ejecutar un solo comando en la pantalla y desconectar, puede intentar:
Para ejecutar varios comandos, intente:
Tenga en cuenta que cuando un programa finaliza, la pantalla (por defecto) mata la ventana que lo contenía.
Si no desea que su sesión sea eliminada después de que finalice el script, agregue
exec sh
al final, por ejemplo:Para enumerar todas sus sesiones, intente:
Relacionado: Iniciar pantalla de Unix, Ejecutar comando, Separar .
fuente
-S sessionname
:screen -dmS MyLongRunningScript bash -c "..."
.Para comenzar una nueva sesión en segundo plano con el nombre 'sueño'
Para matar la sesión 'soñolienta'
fuente
screen -S sleepy -dm "cd myfolder;sleep 60"
?fuente
me sucedió cuando presioné el control c (sig int) para salir de mi programa. sale de todo bash. así que encontré esto para atrapar a SIGINT. e impedir la salida de la última fiesta. (necesita escribir exit para salir)
Me resulta útil usar cron para ejecutar programas nodejs en el inicio. y para ejecutar la pantalla en el momento del arranque. en cron hay eventos especiales sintaxis @reboot event
fuente