Answers:
Ctrl-D还是exit
一样。
如果使用“ X”,则窗口管理器将终止信号发送到外壳。最后有相同的结果。如果外壳没有反应,则用户通常会收到警告,然后可以强制外壳结束(等于kill -9 $PID
)。
如果您zsh
用作外壳程序,则“ X”-和退出方法之间有一个小的区别:如果正在运行后台进程,则exit
/ ctrl-D只会在第一次出现警告消息“您正在运行作业”时生成,第二次关闭外壳。使用“ X”按钮,外壳将立即终止,而不会发出任何警告。
关闭终端仿真器不同于按CTRL + D
(除非huponexit
设置了该选项)。
当您关闭终端(单击“ X”)时,终端仿真器会将SIGHUP发送到外壳。当bash收到SIGHUP时,它还会将SIGHUP发送到您的所有作业。
当您使用CTRL+D
或logout
或退出终端时exit
,外壳程序将退出,而不会将SIGHUP发送给所有作业。这是默认行为,但是可以通过设置bash shopt
设置 来更改huponexit
。
因此,最终,如果您的目标是确保后台没有任何运行,请单击“ X”。
。
jofel在其评论中提供的信息不正确(对不起jofel)。终端仿真器不知道外壳下正在运行什么作业,因此无法终止它们。
注意:
此行为完全取决于外壳程序。不同的外壳完全有可能具有不同的默认行为。
Ctrl+d
进程由PPID继承时1 = systemd
&
将保持运行状态。如果您选择“ X”,则它们将被终止。