【Linux】【网络】进程间关系与守护进程
文章目录
- 1.进程组
-
- 1.1什么是进程组
- 1.2组长进程
- 2.会话
-
- 2.1什么是会话
- 2.2如何创建会话
- 3.作业
-
- 3.1什么是作业、作业控制?
- 3.2作业号
- 3.3常见作业状态
- 3.4作业的切换
- 4.守护进程
-
- 4.1什么是守护进程?
- 4.2如何创建守护进程
- 4.3模拟实现daemon
1.进程组
1.1什么是进程组
之前我们提到了进程的概念, 其实每一个进程除了有一个进程 ID(PID)之外,还属于一个进程组。 进程组是一个或者多个进程的集合, 一个进程组可以包含多个进程。
每一个进程组也有一个唯一的进程组 ID(PGID), 并且这个 PGID 类似于进程 ID, 同样是一个正整数, 可以存放在 pid_t 数据类型中。
$ ps -eo pid,pgid,ppid,comm | grep test
#结果如下
PID PGID PPID COMMAND
2830 2830 2259 test
# -e 选项表示 every 的意思, 表示输出每一个进程信息
# -o 选项以逗号操作符(,) 作为定界符, 可以指定要输出的列
1.2组长进程
每一个进程组都有一个组长进程。 组长进程的 ID 等于其进程组的 ID。 我们可以通过ps
命令看到组长进程的现象。
[node@localhost code]$ ps -o pid,pgid,ppid,comm | cat
# 输出结果
PID PGID PPID COMMAND
2806 2806 2805 bash
2880 2880 2806 ps
2881 2880 2806 cat
从结果上看 ps 进程的 PID 和 PGID 相同, 那也就是说明 ps 进程是该进程组的组长进程