子进程上关闭终端和关闭 shell 之间的区别

子进程上关闭终端和关闭 shell 之间的区别

打开一个新终端并在其中输入命令firefox&ps -l给出:

4 R  1000 23132 23104 99  80   0 - 2177945 -    pts/27   00:00:07 firefox

如果使用命令关闭 shell exit,则 firefox 子进程将成为孤儿进程,但仍以 PPID 1 保持打开状态。

那么结果ps -el|grep firefox是:

4 S  1000 23132     1 14  80   0 - 2233312 poll_s ?      00:00:21 firefox

但如果终端关闭(而不是使用 关闭外壳exit),firefox也会关闭。

那里发生了什么? SIGTERM 是否发送到终端、bash shell 和所有子进程?

有没有可以在shell中使用的与关闭终端具有相同效果的命令?

相关内容