一,守护进程的基本概念
守护进程又名精灵进程,该进程是一种运行在后台的特殊进程,它独立于控制终端并周期性的执行某种任务或等待处理某些发生的事件。
在理解守护进程之前,需要先了解一些基础知识,即进程组、作业、会话以及终端。
二、进程组、作业、会话
1、进程组(Proess Group)
(1)进程组由一个或者多个进程组成;
(2)每个进程组都有一个组长进程,而组长进程往往是该进程组中的第一个进程;
(3)每个进程组都有唯一的一个进程组ID,而该进程组ID就是组长进程的PID;
(4)组长进程可以创建一个进程组,创建该组中的进程,然后终止,但是只要一个进程组中存在至少一个进程,该进程组就存在,这与组长进程是否终止无关;
(5)进程组与同一作业相关联,可以接收来自同一终端的信号。
2、作业(Job)
(1)作业由一个或者多个进程组成,作业分为前台作业和后台作业;
(2)shell分前后台控制的不是进程,而是作业或者进程组;
(3)作业控制:shell可以控制一个前台作业或者多个后台作业;
(4)作业和进程组的区别:如果一个作业中的某一进程创建了子进程,则该子进程不属于该作业;而当一个进程组中的某个进程创建了子进程,则该子进程属于仍然属于该进程组;
(5)当一个前台作业中有一个进程A,并且该进程创建了一个子进程B,当A进程终止时,shell就会将自己提到前台作业中去,而将B进程提到后台运行。
例:
说明:当该进程运行起来的时候,由于父进程先退出,而子进程不属于前台作业,此时子进程被提到后台,因此组合键就不能终止该子进程,必须通过[kill -9 子进程的pid]这样的方式终止子进程。
3、会话
(1)会话是一个或者多个进程组的集合;
(2)会话有一个控制终端;
(3)控制进程:与控制终端建立连接的会话首进程;
(4)一个会话包含:一个前台进程组,任意多个后台进程组,一个控制进程(会话首进程);
(5)当按下组合键时,内核发送相应的信号给会话中前台进程组中的所有进程。
三、终端
1、终端的基本概念:在UNIX系统下,打开一个终端就会创建一个shell进程,该终端就是shell进程的控制终端;
2、几点说明
(1)终端存在于进程的PCB中;
(2)由于fork一个子进程会复制父进程PCB中的内容,因此由shell进程启动的其他进程的控制终端也是这个终端;
(3)默认情况下,进程的标准输入、标准输出、标准错误都指向控制终端;
(4)访问控制终端的两种方法:
a.通过特殊的设备文件dev/tty来访问;
b.通过终端设备所对应的设备文件访问;
(5)ttyname函数可以通过文件描述符查出对应的带路径的文件名,注意该文件描述符必须指向一个终端设备,而不是任意文件。
例:
该函数的输出结果为:
再打开一个终端,输出结果如下:
3、终端登录
内核中处理终端设备的模块包括线路规程和硬件驱动程序
(1)硬件驱动程序
硬件驱动程序负责读写实际的硬件设备,例如从键盘读入字符和把字符输出到显示器上;
(2)线路规程
线路规程是Linux内核的一个模块,是操作系统的一部分,相当于一个过滤器。
所谓的过滤就是不让某些特殊字符通过,而进行特殊处理,同时,线路规程应该过滤哪些特殊字符和做哪些特殊处理是可以配置的。
(3)终端登录过程
四、守护进程
1、几点说明
(1)守护进程没有终端控制,不能直接和用户交互;
(2)守护进程不受用户登录和注销的影响,它们一直在运行;
(3)守护进程的名称通常以d结尾,表示Daemon
2、创建守护进程
(1)创建守护进程需要调用函数setsid;
(2)setsid函数的原型如下:
(3)几点注意事项
a.该函数得作用是创建一个会话,并成为该会话的首进程;
b.如果该函数调用成功,则返回该会话的会话ID,即当前进程的ID,出错返回-1;
c.注意调用这个函数之前,当前进程不能是进程组的组长进程。
d.成功调用该函数的结果是:
创建一个新的会话,当前进程成为会话的首进程,当前进程的ID就是会话ID;
创建一个新的进程组,当前进程就是该进程组的组长进程,该进程的PID就是进程组ID;
如果当前进程原本有一个控制终端,则它失去这个控制终端,成为一个没有控制终端的进程。
(4)创建守护进程的具体步骤
a.调用umask将文件模式创建屏蔽字设置为0;
b.调用fork,并使父进程退出;
c.调用setsid函数创建一个新会话;
d.将当前的工作目录改为根目录;
e.关闭不再需要的文件描述符;
f.忽略SIGCHLD信号
(5)自己动手写一个守护进程
说明:该程序的运行结果如下
相关推荐
JQ8900语音播报模块在RT-Thread系统下的驱动移植与测试详解
本文详细讲解了如何在RT-Thread嵌入式操作系统中,为JQ8900语音播报模块进行驱动移植与功能测试。内容涵盖从获取驱动代码、配置Kconfig工程、编译烧录到核心代码解析的完整流程,并提供了基于串口通信的上电测试与问题排查方法,帮助开发者快速掌握在RT-Thread系统下集成外部模块的核心技能。
Linux:守护进程
什么是守护进程?守护进程是 Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程是个特殊的孤儿进程,这种进程脱离终端。之所以脱离于终端是为了避免进程被任何终端所产生的信息所打断,其在执行过程中的信息也不在任何终端上显示。由于在 linux 中,每一个系统与用户进行交流的界面称为终端,每一个从此终端开始运行的进程都会依附于
UEC++ 虚幻5笔记(数字孪生示例) day13
文件读取与写入,数字孪生入门制作
Linux下的守护进程
一、什么是守护进程1、守护进程的引入 在现实生活中, 许多大型的软件或服务器必须保证7*24小时(一周7天,一天24小时)无障碍的运行,例如淘宝网、百度搜索引擎、支付宝等等,那么像这样一种要一直运行的程序怎么实现呢?究其本质其实就是我们的守护进程。2、守护进程的定义 守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事
(一)利用Python实现数据集读取,Python基本文件操作介绍
机器学习是计算机对大量数据的分析过程,在机器学习的实际项目中,通常都需要准备数据集,数据集通常包含的数据数量是庞大的。例如,在处理计算机视觉领域的项目时,每一张图片都是一个单独的文件,为了提高模型训练的效果,图片数量通常会比较多,因此需要合理且高效的操作将所有的图片数据读取。本篇旨在介绍如何用Python对海量文件进行遍历,也是机器学习实践的第一步。.........
异步复位同步释放:如何确保复位信号的可靠性与时序安全
本文深入探讨了异步复位同步释放技术在数字电路设计中的关键作用,详细分析了复位信号的可靠性与时序安全问题。通过对比异步复位与同步复位的本质区别,揭示异步复位的优势与潜在风险,并提供了标准的Verilog实现方案。文章还涵盖了多时钟域下的复位同步策略、复位网络时序约束方法以及实际工程中的经验教训,为数字系统设计者提供了全面的复位信号处理指南。
守护进程详解
一、普通进程运行观察 代码示例: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <signal.h> int main(int argc, char *const *argv) { printf("进程开始执行!\n"); while (1) { sleep(1); //休眠1秒 //printf("休息1秒,
RHCA III之路---EX436-1
由于ha这门课有大量命令需要在3个节点上同步执行.如果执行history会出现前面数字,复制多行会有些麻烦.lab环境是nodea,nodeb,nodec 考试环境是node1,node2,node3。就可以快速将历史命令实现可多行复制,当然也可以用awk进行分割,个人喜好随意。技巧只能加快答题速度,对考试得分帮助不大。确认3个红框内容一致,且没报错即可。再执行一个histrory。3个node节点上运行。这样就能1次复制3行。
< Linux > 守护进程
目录 1、守护进程 守护进程的概念 进程组和会话 2、守护进程化的方式 TCP网络程序(守护进程化) TCP网络程序(守护进程化)gitee地址 daemon创建守护进程 nohup命令
Transformer实战(40)——Transformer时间序列数据建模
Transformer 因其在自然语言处理 (Natural Language Processing, NLP) 任务中的优异表现而被广泛应用,其主要优势在于能够有效建模时间序列数据。这些数据可以是文本,也可以是非文本。本节将介绍如何使用 Transformer 进行时间序列数据建模和预测,将学习时间序列的基本概念,并在此基础上使用一个简单的模型,用以初步了解时间序列数据,并为各种预测任务奠定基础。
一文搞懂 JavaScript 模块化规范:CommonJS、AMD、ES6 Module
在现代 JavaScript 开发中,模块化是提升代码组织性和可维护性的关键。本文深入解析三种主流的模块化规范——CommonJS、AMD 和 ES6 Module。
Linux守护进程
Linux 守护进程是一种在后台运行的特殊进程,它们独立于控制终端,周期性地执行任务或提供服务。创建守护进程需要遵循特定的流程,包括创建子进程、创建新会话、改变当前目录、重设文件权限掩码和关闭文件描述符。守护进程可以通过systemctlservice或systemd命令来管理。
37、免驱动USB双目同步测距3D活体深度检测和RV1126结合V4L开发USB摄像头使用
基本思想:需要使用双目摄像头在rv1126上进行活体检测,然后将画面实时返回到桌面上,记录一下。第二步:刷机rv1126开发板系统和ssh远程连接,见参考目录。第一步:购买可见光的红外摄像头,见参考连接,在PC端测试可用。
守护进程编程
Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。具有以下特点:守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机才随之一起停止运行;守护进程一般都以root用户权限运行,因为要使用某些特殊的端口(1-1024)或者资源;
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
【Linux】守护进程以及实现一个守护进程
1、什么是守护进程守护进程也称为精灵进程,是运行在后台进程的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 (1)脱离于控制终端并且在后台运行 (2)不受用户登录注销的影响,它们一直在运行着 Linux大多数服务器就是用守护进程实现的,例如:Internet服务器inetd,Web服务器httpd查看系统中的守护进程:使用命令 ps axj 凡是TPGID一
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
什么是守护进程?守护进程的特性
守护进程守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生 的事件。他们常常在系统引导装入时启动,在系统关闭时终止。unix系统有很多守护进程,大多数服务器都是用守护进程实现的。比如,网络服务inetd、 Web服务http等。同时,守护进程完成许多系统任务。比如,作业规划进程crond、打印进程lqd等。这里主要说明守护进程的进程结构,以及如何编写守护进
Probability and Statistics - 4th edition
Probability and Statistics - 4th edition
linux守护进程
守护进程是运行在后台的一种特殊进程,它独立于控制终端并且周期性地执行某种任务或循环等待处理某些事件的发生;守护进程一般在系统启动时开始运行,除非强行终止,否则直到系统关机才随之一起停止运行;守护进程一般都以root用户权限运行,因为要使用某些特殊的端口或者资源;守护进程的父进程一般都是init进程,因为它真正的父进程在fork出守护进程后就直接退出了,所以守护进程都是孤儿进程,由init接管;
【Linux守护进程】二、守护进程详解
Linux守护进程专题二、守护进程详解。系统学习Linux开发、VIM/GCC/GDB/Make工具、Linux文件IO、进程管理、进程通信、多线程等,请关注专栏免费学习。
593



被折叠的 条评论
为什么被折叠?



