10

重击:

$nohup sleep 10 &

但是当我关闭终端时:

将退出警告

有任何想法吗?理想情况下,我想在后台运行 Mongodb。

4

5 回答 5

6

有趣的。似乎是默认终端应用程序特有的问题。因为它的价值,iTerm2没有表现出这种行为。(换句话说,nohup在 OS X 上实际上并没有被破坏;这似乎是终端中的特殊行为,它在退出时查找子进程。)

在很多方面,iTerm2 都比默认终端好。你应该试一试!

于 2012-02-26T05:42:56.513 回答
4

我在 Snow Leopard 上试过这个,弹出对话框并抱怨它会杀死睡眠,但是当我通过ps -eafsleep 检查时仍在运行。

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
于 2012-02-26T05:47:29.553 回答
2

screen在会话中运行它应该可以正常工作。

于 2012-02-26T05:58:32.823 回答
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.appnohuplaunchd.

于 2016-04-11T10:44:07.127 回答
0

使用 tmux

brew install tmux

tmux

使用“tee”命令将输出存储到 txt

python hello.py | tee -a ~/Downloads/output.txt
于 2019-11-13T06:56:25.497 回答