在 zsh 中分离后台进程以便我可以关闭终端
Detaching a background process in zsh so that I can close the terminal
我在 Cygwin 环境中有一个终端进程 运行 zsh。我想启动一个后台进程,然后关闭终端进程并拥有后台进程运行。但是,当我退出终端时,我收到无法退出的错误消息,因为后台进程仍在运行。示例:
sleep 300 &
exit
我收到消息 zsh:你有 运行 个职位。
同
nohup sleep 300 &
从 zsh 的手册页,我看到有一个名为 disown 的命令,根据描述,它可能会做我想做的事,但我不知道如何做使用它。根据手册页,它需要一个参数 job,但没有说明这个参数实际上是什么。我试过了
sleep 300 &
disown $!
但收到消息 disown: job not found: 3964,所以作业显然不是 PID。
我怎样才能正确地做到这一点?
您需要通过职位编号来引用职位
sleep 3000
control-z
bg
jobs
disown %3 (or whatever job number)
希望这至少对其他读者有所帮助:disown
不带任何参数断开作业编号为 %1
的作业。
此外,您可能还想查看 AUTO_CONTINUE on Ctrl-Z 函数。
我在 Cygwin 环境中有一个终端进程 运行 zsh。我想启动一个后台进程,然后关闭终端进程并拥有后台进程运行。但是,当我退出终端时,我收到无法退出的错误消息,因为后台进程仍在运行。示例:
sleep 300 &
exit
我收到消息 zsh:你有 运行 个职位。
同
nohup sleep 300 &
从 zsh 的手册页,我看到有一个名为 disown 的命令,根据描述,它可能会做我想做的事,但我不知道如何做使用它。根据手册页,它需要一个参数 job,但没有说明这个参数实际上是什么。我试过了
sleep 300 &
disown $!
但收到消息 disown: job not found: 3964,所以作业显然不是 PID。
我怎样才能正确地做到这一点?
您需要通过职位编号来引用职位
sleep 3000
control-z
bg
jobs
disown %3 (or whatever job number)
希望这至少对其他读者有所帮助:disown
不带任何参数断开作业编号为 %1
的作业。
此外,您可能还想查看 AUTO_CONTINUE on Ctrl-Z 函数。