会话进程组终端 · 随便记点

送分小仙女□ 提交于 2019-11-26 10:51:40

会话

会话是进程组的集合。
通常一个shell下的所有进程组与shell自身属于同一会话。
通常会话与某个控制终端 ( shell初打开 ) 相关。
一个终端至多只能成为一个会话的控制终端。
一旦断开于终端的连接(如关闭终端窗口),控制进程将会收到SIGHUP信号(默认终止进程)。
在任一时点,一个会话总有一个前台进程组,一个会话可以拥有任意数量的后台进程组。

伪终端

伪终端是一对相互连接的虚拟设备。
如telnet、ssh以及X Window系统所提供的终端窗口实现。

SIGHUP

当一个控制进程失去其终端连接之后,内核会向其发送一个SIGHUP信号。

  1. 终端连接断开 2. 终端窗口被关闭

链式反应

  1. 控制进程通常是shell,它建立了一个SIGHUP信号处理器,会将SIGHUP信号发送给它创建的各个任务。
  2. 在终止终端的控制进程时,内核会解除会话中所有进程与该控制终端间的关联关系以及控制终端与该会话的关联关系,并通过向该终端的前台进程组的成员发送SIGHUP来通知它们控制终端的丢失

nohup可以使命令对SIGHUP免疫:将SIGHUP的处理设置伪SIG_IGN

tmux终端复用/会话管理
https://www.cnblogs.com/weiyinfu/p/10463215.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!