如何停止 zsh 继续 bg 工作

How to stop zsh continuing bg job

观察以下行为(我想停止发生):

> cat /dev/zero
[1]  + 36461 suspended  cat /dev/zero
> bg                                                                                                          
[1]  + 36461 continued  cat /dev/zero
> cat
[1]  + 36461 running    cat /dev/zero

我不确定为什么输入 cat 会再次启动旧的 cat,我希望它只是启动一个新进程。

zsh 选项 AUTO_RESUME 似乎打开了。

AUTO_RESUME (-W)

Treat single word simple commands without redirection as candidates for resumption of an existing job.

-- ZSHOPTIONS(1)

您可以使用 setopt no_autoresume 在全局范围内避免此行为。

或者只是为了这个命令,我们可以让它不是"single word"命令。在这种情况下,您可以通过添加一些 precommand modifiers 前缀来实现,例如 command-,如下所示:

> cat /dev/zero
[1]  + 6241 suspended  cat /dev/zero
> bg
[1]  + 6241 continued  cat /dev/zero
> cat
[1]  + 6241 running    cat /dev/zero

[1]  + 6241 suspended  cat /dev/zero
> - cat