当前位置: 首页 > news >正文

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)

大家如果有什么感兴趣的内容,欢迎私信或者评论区留言

http://www.jsqmd.com/news/855125/

相关文章:

  • 零成本玩转全球金融数据:AKShare实战指南与量化投资入门
  • 实验7全流程
  • iPaaS集成平台:五个决策场景与对应的真实数据
  • 系统时间切换工具:开发运维必备的跨时区测试与调试利器
  • 团队岗位职责设定
  • 保姆级教程:用G2O搞定视觉SLAM中的BA优化(附ORB-SLAM实战代码片段)
  • RTKLIB PPP中的扩展卡尔曼滤波(EKF)到底怎么跑的?filter函数逐行解析
  • 从入门到发表:用Perplexity完成一篇ApJ Letters级文献综述——12个被顶刊审稿人反复验证的搜索链路
  • 基于协同过滤算法的绿色食品推荐系统(10075)
  • DL:深度学习的主要任务
  • iOS设备解锁终极指南:使用applera1n快速绕过激活锁
  • 2026年降AI工具万方检测专项测试:五款工具万方AIGC检测通过率完整横评
  • 别再手动备份了!用Shell脚本+定时任务搞定Confluence数据自动备份(附完整脚本)
  • Win10下搞定Realtek 8812BU网卡驱动,保姆级教程让Omnipeek抓包不再报错
  • 2026年国内冷弯型钢设备靠谱品牌TOP5实测排行:数控辊压成型机/无极调速冷弯机组/货架立柱辊压成型机/轻钢龙骨辊压设备/选择指南 - 优质品牌商家
  • 2W 级隔离 DC-DC 设计:钡特电源 DB2-05D15LS 与金升阳 A0515S-2WR3 两款主流工业电源封装与性能实测
  • CentOS 7服务器上NVIDIA驱动和CUDA 11.x的保姆级安装避坑指南(含Nouveau禁用与版本选择)
  • 跨平台系统时间切换工具开发:Python实现一键修改与方案管理
  • 什么是组合模式?一文详解
  • STM32串口打印的“坑”你踩过几个?从fputc重定向到解决中文乱码、数据丢失的完整指南
  • topcode【随机算法题】【2026.5.20打卡-java版本】
  • 告别.NET Framework:为什么我建议你的下一个WinForm项目直接上.NET 8?
  • 2026年彩钢瓦冷弯成型设备评测:异型冷弯成型设备、彩钢瓦冷弯成型权、数控辊压成型机、货架立柱辊压成型机、轻钢龙骨辊压设备选择指南 - 优质品牌商家
  • AI 术语通俗词典:Dropout 层
  • BGM自由!2026视频创作者必备的5个免费商用音乐素材库
  • Perplexity阅读推荐查询调优手册:从冷启动到高精度召回,6步达成92.7%相关性提升
  • 2026年专业聚合氯化铝厂家排行:阳离子聚丙烯酰胺/非离子聚丙烯酰胺/PAC聚合氯化铝/PAM絮凝剂/乙二胺四乙酸二钠EDTA2Na/选择指南 - 优质品牌商家
  • 揭秘TransNet V2:如何用AI智能检测视频镜头边界,提升剪辑效率300%
  • TCP协议深度解析:从核心原理到线上故障排查实战
  • 技术从业者的团队协作:如何打造高效的技术团队