2012-02-26 73 views
8

猛砸工作:NOHUP不OSX

$nohup sleep 10 & 

但是當我關閉終端:

will exit warning

任何想法?理想情況下,我想在後臺運行Mongodb。

+0

適合我這裏 - 檢查您的終端偏好? – 2012-02-26 05:43:17

回答

5

有趣。看起來像特定於默認終端應用的問題。因爲它的價值,iTerm2不會出現這種行爲。 (換句話說,nohup在OS X上實際上並沒有被破壞;這看起來像終端中的特殊行爲,它在退出時尋找子進程。)

在許多方面,iTerm2比默認終端更好。你應該試試看!

+0

你是對的,這是一個古怪的顯示錯誤,我猜想蘋果沒有注意到它。 iTerm很有趣,感謝您的鏈接! – 2012-02-27 17:59:15

1

我在Snow Leopard上試過這個,彈出對話框並抱怨說它會殺死睡眠,但是當我通過ps -eaf檢查睡眠仍在運行。

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

screen會話中運行它應該工作得很好。

1

我在OSX 10.8.5,並可以確認:

nohup base64 /dev/urandom &

基於Terminal.app,應用程序(如TotalTerminal)產卵過程中的shell會話下,不根據launchd,這將是預期的/相當於linux的行爲。

另一方面,iTerm2.app能夠在launchd下運行相同的命令,並在shell會話關閉後保持活動狀態。它雖然實現了一些特殊的技巧:

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

我在我身邊的同事已經嘗試同樣的事情在OSX 10.10.x和Terminal.app催生launchdnohup過程,這表明可能他們之間10.8固定它。 x-10.10.x。