2012-02-26 12 views
8

バッシュでは動作しません:NOHUPはOSX

$nohup sleep 10 & 

が、私はターミナル閉じたとき:

will exit warning

任意のアイデア?理想的には私はバックグラウンドでモンゴブを実行したい。

+0

ここで私のために働きます - あなたの端末の設定を確認してください? –

答えて

5

興味深い。既定のターミナルアプリケーション固有の問題のようです。それは価値があるため、iTerm2はこの動作をしません。 (換言すれば、nohupは実際にはOS Xでは壊れていませんが、これは終了時にサブプロセスを探すTerminalの特別な動作のようです)。

多くの点でiTerm2はデフォルトの端末より優れています。あなたはそれを試してみるべきです!

+0

あなたはそうだと思いますが、Appleの関心を引くことはできませんでした。 iTermは面白いです、リンクのおかげで! –

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)これでしょう、ないlaunchdの下で、シェルセッションの下でプロセスを生成します予想される/ Linuxの動作と同等です。

一方、iTerm2.appは同じコマンドをlaunchdの下で実行することができ、シェルセッションが終了した後も有効になりました。これは、しかし、いくつかの特別なトリックを実装しています:私の側の

─┬◆ 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は、潜在的に、彼らは10.8の間に固定されていることを示唆し、launchdnohupプロセスを生み出しました。 x-10.10.x。