2012-07-29 02:04:52 +0000 2012-07-29 02:04:52 +0000

Respuestas [5]

120
2012-07-29 02:20:11 +0000

Esto es fácil:

screen -d -m yourcommand
120
49
2012-07-29 02:10:53 +0000

Para ejecutar un solo comando en pantalla y separar, puede probar:

screen -dm sleep 10

Para ejecutar varios comandos, pruebe:

screen -dm bash -c "sleep 10; myscript.sh"

Tenga en cuenta que cuando un programa termina, screen (por defecto) mata la ventana que lo contenía.

Si no quiere que su sesión se mate después de que el script haya terminado, añada exec sh al final, por ejemplo

screen -dm bash -c 'sleep 5; exec sh'

Para listar todas sus sesiones, pruebe:

screen -list

Relacionado: Iniciar pantalla Unix, Ejecutar comando, Desligar .

49
16
2016-11-06 08:03:26 +0000

Para iniciar una nueva sesión en segundo plano con el nombre 'sleepy'

screen -S sleepy -dm sleep 60

Para matar la sesión 'sleepy'

screen -S sleepy -X quit
16
3
2018-03-14 05:40:50 +0000
screen -dmS screen_session_name bash -c 'echo "doing stuff"; exec bash'
3
0
2019-04-29 09:38:39 +0000

me paso cuando presione control c (sig int) para salir de mi programa. sale de todos los bash. asi que encontre esto para atrapar SIGINT. y prevenir la salida del ultimo bash. (hay que teclear exit para salir)

screen -dmS "screenNameHere" bash -c "trap 'echo gotsigint' INT; cd /mydir ; my_command_here; bash"

example:

screen -dmS "status_updates" bash -c "trap 'echo gotsigint' INT; cd /opt/status_update ; forever index.js ; bash"

Encuentro útil usar cron para ejecutar programas nodejs en el arranque. y para ejecutar la pantalla en el arranque. en cron hay una sintaxis de eventos especiales @reboot event

to edit cron, execute:
crontab -e

then type
@reboot screen -dmS "screenNameHere" bash -c "trap 'echo gotsigint' INT; cd /mydir ; my_command_here; bash"
0