第三十五讲 进程组、会话、终端
文章目录
一、进程组
1、作用
对相同类型的进程进行管理
2、进程组的诞生
在 shell 直接执行应用程序,可以创建进程组。对于大部分进程来说,自己就是进程组的首进程。进程组只有一个进程
如果进程调用了 fork 函数,那么父子进程同属一个进程组,父进程位首进程
在 shell 中通过管道连接起来的应用程序,亮哥进程同属一个进程组,第一个进程位进程组的首进程
3、进程组id
进程组 id 称为 pgid,由首进程的 pid 决定,可以通过命令 ps -axjf 查看进程的 pgid
4、进程组分类
(1)、前台进程组
在 shell 启动时,它就被默认为前台进程组的首进程。前台进程组的首进程会占用会话所关联的终端来运行。当 shell 启动其他应用程序时,其他应用程序成为首进程。此时 shell 就不能占用会话所关联的终端来运行了。
(2)、后台进程组
后台进程组程序在运行的时候并不会占用终端
在 shell 终端运行程序时,可以加一个参数 & ,该程序就会后台运行,不会占用终端
使用 ctrl+z 也可以使程序后台运行
(3)、前后台进程切换
在 shell 终端使用 jobs 命令可以查看当前运行的后台进程组
使用 fg jobid 命令可以讲后台进程切换到前台
在 shell 终端运行程序时,可以加一个参数 & ,该程序就会后台运行,不会占用终端
使用 ctrl+z 也可以使程序后台运行
使用ctrl + c 可以终止后台进程
二、会话
1、作用
管理进程组
2、会话的诞生
调用setsid 函数可以新建一个会话,应用程序作为会话的第一个进程,作为会话的首进程
用户在终端登录之后,启动 shell 时,linux 系统会创建一个新的会话,shell 进程作为会话的首进程
3、会话id
会话 id 称为 sid,为会话首进程id
三、终端
1、物理终端
需要依赖物理设备的终端
- 串口终端
- lcd 终端
2、伪终端
虚拟出来的终端
- ssh 远程连接
- 桌面系统启动终端
3、虚拟终端
linux 内核自带的终端,可以使用 ctrl + F0 ~ F6 打开七个终端
版权声明:本文为qq_34355238原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。