源码技术
php
java
python
Linux
当前位置:
首页
>
Linux
>Linux守护进程--进程、进程组、会话、终端
Linux守护进程--进程、进程组、会话、终端
2026-08-27 03:31:51
Linux守护进程--进程、进程组、会话、终端
要弄明白守护进程,就必须先讲清楚
进程
、
进程组
、
会话
、
终端
一、进程
当我们运行一个应用时,根据
冯诺依曼体系结构
,必须把这个应用的
代码
、
数据
以及
PCB
(进程控制块,
process control block,也就是关于进程的描述结构体
)
加载
到内存,由CPU调度执行
对于已经被加载到内存中等待CPU调度执行的应用,就叫做进程
进一步来讲,进程就是
应用等待执行的状态
,就是
PCB + 程序本身的数据代码
注:PCB内部会有一个指针指向程序本身的数据代码,这里为了便于理解,把二者区分开来了
二、
进程组
为了将多个进程统一管理,将它们放在一个
统一的组
里面,这个
组
,就叫做
进程组
在同一个组里面的进程,如果其中一个进程收到某个信号,其它的成员也会收到该信号
三、终端
首先我们要弄明白屏幕和终端的区别
简单来说,
屏幕是呈现终端内容的载体,只要写在终端输出缓冲区的内容,都会被屏幕读取并展示
在Linux中,终端其实是一个设备,或者说是一个伪设备
它不负责"画"任何东西,只负责存储用户和进程输入输出的内容
当你在键盘上输入一个个字符时,你会很直观地看到你输入的字符在你的屏幕上显现,但是
屏幕不是终端
,事实上,这个流程如下:
1、你在键盘上输入字符后,键盘会向操作系统
发送中断
2、操作系统收到中断后,将你输入的内容交给
终端的输入缓冲区
3、
正在读这个终端设备的进程(
前台进程
)
从输入缓冲区取走
这个字符
,根据进程本身的需求决定是否写入终端的输出缓冲区
4、如果写入终端的输出缓冲区,终端会把内容交给屏幕显示,进而得到看到你刚刚输入的字符
举个例子:
当你登录Linux时,会叫你输入密码,但是你看不到密码回显,就是因为只把密码给了终端的输入缓冲区,但是读取终端输入缓冲区的进程没有把它写到终端的输出缓冲区,所以没有看到回显
事实上,可以试试以下两个指令
stty -echo关闭回显;
stty echo开启回显
总结起来,
终端的输入缓冲区的内容由键盘输入决定,进程(前台进程)读取;终端的输出缓冲区的内容由进程(任何进程)决定,屏幕设备读取(显示),终端只起到转发(有时还会加工)的作用
四、会话
所谓
会话
,就是一个或多个
共享
同一个终端
的
进程组
的
集合
,由此便要引入
前台进程
的概念
事实上,虽然
所有的进程组
共享同一个终端,但并非
所有的进程
都有资格访问终端的输入缓冲区
试想一下,你键盘输入一个数据"hello"
如果被A进程读走"he",B进程读走"llo",那双方得到的信息都不完整,这就可能会
造成响应错误的结果
所以
必须保证读取终端的输入缓冲区的进程是唯一的!
这个
唯一的进程也就叫做前台进程
值得注意的一点是,前台进程可以有多个,多个前台进程构成的集合叫做
前台进程组
但是
在前台进程组中能访问终端输入缓冲区的只有一个前台进程,也就说前台进程有读取输入缓冲区的能力,但具体谁读,要看情况分析
其次,对于一个会话,我们需要有一个管理者,也就是
首领进程
首领进程在大多数情况下都是唯一的前台进程,这也就意味着当运行一些程序时,首领进程
必须有将该程序提到前台去的能力!
与前台进程相反的进程也就是后台进程
最后要强调一点的是,终端发出的信号(
Ctrl+C
Ctrl+Z
Ctrl+\
)也只有前台进程才能收到
最后,说一个现象:
我们每次登录Linux终端版时,首先会看到:
根据前面所说,你看到的内容都是进程往终端的输出缓冲区里写的东西,这个进程是什么?他就是bash进程(shell)
大家如果有什么感兴趣的内容,欢迎私信或者评论区留言
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:596563534@qq.com 。
学习python必备的小程序!!
告别硬件玄学!Linux驱动命令直接定位问题
最新文章
学习python必备的小程序!!
四个边学边玩的Python游戏网站
Python适合刷题练习超好用的七个网站
Python 语法秘籍大公开 零基础小白逆袭
python常用20个Excel数据处理脚本(附源码)
python中很常用的62个内置函数整理(初学必
Python数据分析自学之Excel篇
python快捷键合集
上班摸鱼写了篇Python办公自动化教程
【Linux·基础篇】Shell 基础|常用命令·归档与压缩(三)
热门文章
第四十课:Python数学函数模块math
Python学习--枚举类的使用
Python库Pandas常用函数和方法,建议收藏
Python入门必看:完整学习规划 27个知识点
Python75个实战项目,练完你就了
一周就能练完的70个Python实战项目
python100道练习题 基础到精通!快速上手
一周练完108个Python练手项目附视频源码
Python使用PyQt创建图形界面-程序学习之点餐系统
坑惨信创的低级错误漏洞分析,微信Linux版为何点击接收文件就被黑?
随机文章
10个月宝宝每天需要喝多少奶粉?
零基础必备!Python语法顺口溜轻松搞定基础
16行Python代码的拦球乒乓小游戏_Python趣味编程
《效率干货:python调用PaddleOCR-VL-1.5大模型api批量精准识别采购装箱单,彻底告别人工录入,实现摸鱼自由get√》
Python学起来!1月跟着计划表冲
了解python基本语法后 就马上来看这本书!!!
给一时兴起想要学Python的同学,附上学习步骤!(邪修版)
用 python 实现项目辅导视频
Linux运维建议考的4个证书(高含金量)
安装 Arch Linux 到 VMware Workstation 的完全指南
Linux系统下RustDesk自建服务器教程