jof*_*fel 14
Ctrl-D 还是exit一样的。
如果您使用“X”,窗口管理器会向外壳程序发送一个终止信号。最终结果相同。如果 shell 没有反应,用户通常会收到警告,然后可以强制 shell 结束(等于kill -9 $PID)。
如果您zsh作为 shell使用,“X”- 和退出方法之间有一个小的区别:如果您有一个后台进程正在运行,exit/ctrl-D 第一次只产生一条警告消息“您有正在运行的作业”,第二次关闭外壳。使用“X”按钮,外壳会立即终止,没有任何警告。
关闭终端模拟器与按下不同CTRL + D(除非huponexit设置了该选项)。
当您关闭终端(单击“X”)时,终端仿真器会向 shell 发送一个 SIGHUP。当 bash 收到 SIGHUP 时,它还会向您的所有作业发送一个 SIGHUP。
当您使用CTRL+D或logout或退出终端时exit,shell 退出而不向所有作业发送 SIGHUP。这是默认行为,但可以通过设置 bash shoptsetting 进行更改huponexit。
因此,最终,如果您的目标是确保后台没有运行任何内容,那么单击“X”是明智之举。
.
jofel 在他的评论中提供的信息不正确(对不起 jofel)。终端模拟器不知道 shell 下正在运行哪些作业,因此无法终止它们。
注意:
此行为完全取决于外壳。完全有可能不同的外壳具有不同的默认行为。