进程间关系:进程、僵尸进程、孤儿进程、进程组、前台进程组、后台进程组、孤儿进程组、会话、控制终端
- 进程间关系:进程、僵尸进程、孤儿进程、进程组、前台进程组、后台进程组、孤儿进程组、会话、控制终端
- 摘要
- 正文
- 僵尸进程与孤儿进程
- 文中用到的缩写
- 进程、进程组、会话之间的关系
- 总体关系
- 会话
- 进程组
- 孤儿进程组
- 解析:产生一个孤儿进程(组)并读终端
- 注释
进程间关系:进程、僵尸进程、孤儿进程、进程组、前台进程组、后台进程组、孤儿进程组、会话、控制终端
摘要
本文详细介绍了bash shel环境下进程、进程组及会话的概念与管理方式,包括僵尸进程与孤儿进程的特点,以及前台与后
台进程组的区别。
正文
不同的shell对使用管道线时创建子进程的顺序不同,本文以bash为例,它是支持作业控制的shell的典型代表。
僵尸进程与孤儿进程
僵尸进程:先于父进程终止,但是父进程没有对其进行善后处理(获取终止子进程有关信息,释放它仍占有的资源)。消灭僵尸进程的唯一方法是终止其父进程。
孤儿进程:该进程的父进程先于自身终止。其特点是PPID=1(init进程的ID)。一个孤儿进程可以自成孤儿进程组。
文中用到的缩写
PID = 进程ID (由内核根据延迟重用算法生成)
PPID = 父进程ID(只能由内核修改)
PGID = 进程组ID(子进程、父进程都能修改)
SID = 会话ID(进程自身可以修改,但有限制,详见下文)
TPGID= 控制终端进程组ID(由控制终端修改,用于指示当前前台进程组)
进程、进程组、会话之间的关系
总体关系
进程属于一个进程组,进程组属于一个会话,会话可能有也可能没有控