Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash gnome terminal cmd在关闭父窗口后使进程保持打开状态_Bash_Shell_Process_Gnome - Fatal编程技术网

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。我希望关闭新生成的窗口足以杀死与每个选项卡对应的子进程(不管它是否处于活动状态),而不必杀死原始的源终端。希望这是有道理的。