重击:
$nohup sleep 10 &
但是当我关闭终端时:
有任何想法吗?理想情况下,我想在后台运行 Mongodb。
有趣的。似乎是默认终端应用程序特有的问题。因为它的价值,iTerm2没有表现出这种行为。(换句话说,nohup
在 OS X 上实际上并没有被破坏;这似乎是终端中的特殊行为,它在退出时查找子进程。)
在很多方面,iTerm2 都比默认终端好。你应该试一试!
我在 Snow Leopard 上试过这个,弹出对话框并抱怨它会杀死睡眠,但是当我通过ps -eaf
sleep 检查时仍在运行。
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
在会话中运行它应该可以正常工作。
我在 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.appnohup
在launchd
.
使用 tmux
brew install tmux
tmux
使用“tee”命令将输出存储到 txt
python hello.py | tee -a ~/Downloads/output.txt