抽象、会话、会话领导者和流程组的目的是什么?

抽象、会话、会话领导者和流程组的目的是什么?

我的理解是从告知文章会话和进程组用于在退出时终止后代进程,并向具有作业控制的相关进程发送信号。

我相信可以使用每个进程的 PPID 在任何时候提取此信息。这些概念的存在是否只是为了拥有一个能够快速获取进程后代的数据结构?

除了作业控制和终止后代之外,会话组和进程组是否还从事其他工作?他们存储任何上下文信息吗?

任何好的参考资料都会有所帮助。

答案1

进程组存在主要是为了确定哪些进程从某个进程启动终端可以访问该终端。仅进程在前台进程组可以读取或写入其控制终端;后台进程是由 SIGTTIN 或 SIGTTOU 信号停止

您可以通过将负 PID 参数传递给进程组中的所有进程以原子方式发送信号kill。当终端驱动程序响应于某个信号而生成信号时,也会发生这种情况特殊字符(例如Ctrl+ 的SIGINT C)。

会话跟踪哪些进程组连接到终端。仅在同一会话中运行的进程控制过程是前台或后台进程。

无法从 PPID 确定进程组或会话。您无法知道进程的父进程是否位于同一进程组中还是不同的进程组中,会话也是如此。

相关内容