我有一个在Cygwin环境中运行zsh的终端进程。我想启动后台进程,然后关闭终端进程并运行后台进程。但是,当我退出终端时,我收到它无法退出的错误消息,因为后台进程仍在运行。例如:
sleep 300 &
exit
我收到消息 zsh:你有正在运行的工作。
与
相同nohup sleep 300 &
在zsh的手册页中,我看到有一个名为 disown 的命令,从描述中可能会做我想要的,但我不知道如何使用它。根据手册页,它需要一个参数 job ,但是并没有说出这个参数究竟是什么。我试过了
sleep 300 &
disown $!
但是得到消息 disown:job not found:3964 ,所以作业显然不是PID。
我该如何正确地做到这一点?
答案 0 :(得分:2)
您需要通过作业号
来参考作业sleep 3000
control-z
bg
jobs
disown %3 (or whatever job number)
答案 1 :(得分:1)
希望这对其他读者来说还是有帮助的:disown
,不带任何参数将断开作业编号为%1
的作业。
此外,您可能想签出AUTO_CONTINUE on Ctrl-Z功能。