在zsh中分离后台进程,以便我可以关闭终端

问题描述 投票:0回答:2

我有一个在Cygwin环境中运行zsh的终端进程。我想启动后台进程,然后关闭终端进程并运行后台进程。但是,当我退出终端时,我收到无法退出的错误消息,因为后台进程仍在运行。例:

sleep 300 &
exit

我收到消息zsh:你有正在运行的工作。

同样的

nohup sleep 300 &

从zsh的手册页中,我看到有一个名为disown的命令,从描述中可能会做我想要的,但我不知道如何使用它。根据手册页,它期望一个参数工作,但没有说明这个论点究竟是什么。我试过了

sleep 300 &
disown $!

但得到消息不明确:找不到工作:3964,所以工作显然不是PID。

我该怎么做才能正确?

cygwin zsh
2个回答
2
投票

您需要通过它的工作号来参考工作

sleep 3000
control-z
bg
jobs
disown %3 (or whatever job number)

1
投票

希望这仍然有助于避免其他读者:没有任何参数的disown用作业号%1断开工作。

此外,您可能想要查看AUTO_CONTINUE on Ctrl-Z功能。

© www.soinside.com 2019 - 2024. All rights reserved.