2012-02-26 10 views
8

Bash:nohup no funciona en OSX

$nohup sleep 10 & 

pero cuando cierro el terminal:

will exit warning

¿Alguna idea? idealmente quiero ejecutar Mongodb en segundo plano.

+0

Funciona para mí aquí - verifique sus preferencias de terminal? –

Respuesta

5

Interesante. Parece un problema específico de la aplicación Terminal predeterminada. Porque por lo que vale, iTerm2 no muestra este comportamiento. (en otras palabras, nohup no está realmente roto en OS X; esto parece un comportamiento especial en el terminal que busca subprocesos al salir.)

En muchos sentidos, iTerm2 es mejor que el terminal predeterminado. ¡Usted debe darle una oportunidad!

+0

Tienes razón, es un error de visualización peculiar que supongo que no llamó la atención de Apple todavía. ¡iTerm es interesante, gracias por el enlace! –

1

Intenté esto en Snow Leopard, y el cuadro de diálogo apareció y se quejó de que iba a matar el sueño, pero cuando lo revisé a través de ps -eaf, el sueño todavía estaba funcionando.

bill$ ps -eaf | grep sleep 
    501 11806  1 0 0:00.00 ??   0:00.01 sleep 1000 
    501 11811 2628 0 0:00.00 ttys001 0:00.00 grep sleep 
2

Correr en una sesión screen debería funcionar bien.

1

estoy en OSX 10.8.5, y puedo confirmar:

nohup base64 /dev/urandom &

aplicaciones basadas en Terminal.app (por ejemplo TotalTerminal) genera el proceso bajo la sesión de shell, no bajo launchd, lo que haría ser el esperado/equivalente al comportamiento de Linux.

Por otro lado, iTerm2.app pudo ejecutar el mismo comando bajo launchd, y se mantuvo activo después de que se cerró la sesión del shell. Se implementa un truco especial, aunque:

─┬◆ 00001 root /sbin/launchd 
├─┬◆ 00245 albanj01 /sbin/launchd 
│ └─┬◆ 21533 albanj01 /Applications/iTerm.app/Contents/MacOS/iTerm2 -psn_0_94628409 
│ └─┬◆ 04684 albanj01 /Applications/iTerm.app/Contents/MacOS/iTerm2 --server /Applications/iTerm.app/Contents/MacOS/iTerm2 --launch_shell 
│  └─┬◆ 04685 albanj01 -zsh 
│  └──◆ 04759 albanj01 base64 /dev/urandom 

Mi colega de mi lado ha intentado hacer lo mismo en OSX 10.10.x y Terminal.app generado el proceso nohup bajo launchd, lo que sugiere que potencialmente se han fijado que entre 10,8. x-10.10.x.

Cuestiones relacionadas