Nohup在OSX中无法使用。

12

Bash:

-->

Bash:

$nohup sleep 10 &

但是当我关闭终端时:

will exit warning

有什么建议吗?理想情况下,我想在后台运行Mongodb。


这在我的电脑上能运行 - 检查一下你的终端偏好设置? - Carl Norum
5个回答

7
有趣。看起来这是特定于默认终端应用程序的问题。因为就价值而言,iTerm2没有展示这种行为。(换句话说,在OS X上,nohup并没有真正出现故障; 这似乎只是终端中寻找子进程的特殊行为。)
在许多方面,iTerm2比默认终端更好。您应该尝试一下!

你说得对,这是一个奇怪的显示错误,我猜可能还没有引起苹果的注意。iTerm很有趣,谢谢提供链接! - Mr. Demetrius Michael
这绝对不是我的经验。如果我在term2中运行nohup emacs&,当/如果我杀死iterm时,emacs也会关闭。 - Michael Campbell

4

我尝试在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
我在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在launchd下产生了nohup进程,这表明可能在10.8.x-10.10.x之间已经修复了这个问题。


你如何获得这种类型的树? - Vassilis

2
在一个screen会话中运行它应该能正常工作。

1

使用 tmux

brew install tmux

tmux

使用“tee”命令将输出存储到txt文件中。
python hello.py | tee -a ~/Downloads/output.txt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接