バッシュ:
$nohup sleep 10 &
しかし、私がターミナルを閉じると:
何か案は?理想的には、Mongodbをバックグラウンドで実行したいと思います。
面白い。デフォルトのターミナルアプリに固有の問題のようです。なぜなら、その価値のために、iTerm2はこの動作を示しません。(つまり、nohup
OS Xでは実際には壊れていません。これは、終了時にサブプロセスを探すターミナルでの特別な動作のように見えます。)
多くの点で、iTerm2はデフォルトのターミナルよりも優れています。あなたはそれを試してみるべきです!
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
screen
セッションで実行すると、問題なく動作するはずです。
私はOSX10.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
私の側の同僚はOSX10.10.xで同じことを試し、Terminal.appはでnohup
プロセスを生成しましたlaunchd
。これは、10.8.x〜10.10.xの間に修正された可能性があることを示唆しています。
tmuxを使用する
brew install tmux
tmux
「tee」コマンドを使用して、出力をtxtに保存します
python hello.py | tee -a ~/Downloads/output.txt