2012-02-26 13 views
8

Bash:nohup non funziona in OSX

$nohup sleep 10 & 

ma quando chiudo il terminale:

will exit warning

Tutte le idee? idealmente voglio eseguire Mongodb in background.

+0

Funziona per me qui - controlla le tue preferenze del terminale? –

risposta

5

Interessante. Sembra un problema specifico per l'app Terminal predefinita. Perché per quello che vale, iTerm2 non presenta questo comportamento. (In altre parole, non è in realtà nohup rotto su OS X, questo sembra proprio come un comportamento speciale nel Terminale che cerca sottoprocessi in uscita.)

In molti modi, iTerm2 è meglio che il terminale di default. Dovresti provarlo!

+0

Hai ragione, è un errore di visualizzazione bizzarro che immagino non abbia ancora attirato l'attenzione di Apple. iTerm è interessante, grazie per il link! –

1

Ho provato questo su Snow Leopard, e la finestra di dialogo spuntato e si lamentava che stava per uccidere il sonno, ma quando ho controllato via ps -eaf il sonno era ancora in esecuzione.

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

esecuzione in una sessione screen dovrebbe funzionare bene.

1

Sono su OSX 10.8.5, e posso confermare:

nohup base64 /dev/urandom &

applicazioni Terminal.app basati su (ad esempio TotalTerminal) genera il processo sotto la sessione di shell, non sotto launchd, che avrebbe essere il comportamento previsto/equivalente al linux.

D'altra parte, iTerm2.app è stato in grado di eseguire lo stesso comando in launchd e mantenuto attivo dopo la chiusura della sessione di shell. Implementa un trucco speciale però:

─┬◆ 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 

mio collega dalla mia parte ha provato la stessa cosa su OSX 10.10.x e Terminal.app generato il processo nohup sotto launchd, suggerendo che potenzialmente hanno fissato fra 10.8. x-10.10.x.