Bash 当终端关闭时,如何强制退出后台命令?

Bash 当终端关闭时,如何强制退出后台命令?,bash,zsh,Bash,Zsh,我需要运行2个后端命令 ./exec1.sh & ./exec2.sh & 但是如果我关闭终端。命令仍在运行。如何在关闭终端时终止它们?只标记一个shell——zsh或bash,而不是两者。它们彼此不完全兼容,而且它们所需的答案也不能保证完全相同。无论如何,如果您在接收到HUP信号时编写关闭命令,则当您关闭终端时,该命令将退出,除非明确写入不这样做。如果它是为了避免自动关闭而写的,你需要建立一个模型,并将其包含在问题中,这样我们就可以确定,我们给出的任何答案都将击败这些回避。(

我需要运行2个后端命令

./exec1.sh &
./exec2.sh &

但是如果我关闭终端。命令仍在运行。如何在关闭终端时终止它们?

只标记一个shell——zsh或bash,而不是两者。它们彼此不完全兼容,而且它们所需的答案也不能保证完全相同。无论如何,如果您在接收到HUP信号时编写关闭命令,则当您关闭终端时,该命令将退出,除非明确写入不这样做。如果它是为了避免自动关闭而写的,你需要建立一个模型,并将其包含在问题中,这样我们就可以确定,我们给出的任何答案都将击败这些回避。(您还可以查看正在运行的程序是否将其stdin、stdout和stderr重定向到远离终端的地方——如果FD转到那里,那么在终端退出后从它们读取或写入的下一次尝试将失败,在许多编程语言中,这将引发一个异常,迫使您的程序退出;但是如果您运行的程序是redir将其文件描述符转换为文件,终端的持续存在对其影响较小)。