Bash gnome terminal cmd在关闭父窗口后使进程保持打开状态
以下简单命令应说明我的问题:Bash gnome terminal cmd在关闭父窗口后使进程保持打开状态,bash,shell,process,gnome,Bash,Shell,Process,Gnome,以下简单命令应说明我的问题: gnome-terminal --tab -t "Tab 1" -e "/bin/bash" --tab -t "Tab 2" -e "/bin/bash" 这将打开一个包含两个选项卡和一个活动bashshell的新窗口。如果我立即使用GUI[x]关闭这个新窗口,然后执行ps命令,其中一个子进程(/bin/bash)将保持打开状态。我发现这对应于在某个时间点从未被激活(通过单击)的所有非活动选项卡。因此,如果我们制作了一个与上述示例类似的新命令,但有5个选项卡,而
gnome-terminal --tab -t "Tab 1" -e "/bin/bash" --tab -t "Tab 2" -e "/bin/bash"
这将打开一个包含两个选项卡和一个活动bashshell的新窗口。如果我立即使用GUI[x]关闭这个新窗口,然后执行ps命令,其中一个子进程(/bin/bash)将保持打开状态。我发现这对应于在某个时间点从未被激活(通过单击)的所有非活动选项卡。因此,如果我们制作了一个与上述示例类似的新命令,但有5个选项卡,而不是2个选项卡,并且您在运行该命令后立即关闭了此窗口,那么4个子进程将保持运行状态。这是一个特殊的部分……如果您单击每个选项卡使其处于活动状态,然后关闭窗口,所有子进程都将被终止,正如人们所期望的那样
这是gnome终端中的一个bug吗
如何确保这些进程关闭而不是保持打开状态?按如下方式运行:
gnome-terminal --tab -t "Tab 1" -e "bash -ic 'echo Hello; exec bash'" --tab -t "Tab 2" -e "bash -ic 'echo Hello; exec bash'"
你需要在测试前运行一些comand;bash,您可以通过任何其他方式更改“echo Hello”。unix.stackexchange.com更适合这样做子进程处于什么状态?他们是僵尸吗?不管怎样,这听起来确实像gnome终端中的一个bug。我不认为他们是僵尸。我必须承认——对于ps命令和unix,我基本上是个新手。我在统计栏中没有看到“Z”。似乎打开的进程的父进程ID是执行上述命令的终端的PID。我希望关闭新生成的窗口足以杀死与每个选项卡对应的子进程(不管它是否处于活动状态),而不必杀死原始的源终端。希望这是有道理的。