2.30、守护进程(1)

news2025/6/15 16:21:27

2.30、守护进程(1)

  • 1.终端是什么
  • 2.进程组是什么
  • 3.会话是什么
  • 4.进程组、会话、控制终端之间的关系
  • 5.进程组、会话操作有哪些函数
    • ①pid_t getpgrp(void);
    • ②pid_t getpgid(pid_t pid);
    • ③int setpgid(pid_t pid, pid_t pgid);
    • ④pid_t getsid(pid_t pid);
    • ⑥pid_t setsid(void);
  • 6. 守护进程是什么

1.终端是什么

  • UNIX 系统中,用户通过终端登录系统后得到一个 shell 进程,这个终端成为 shell 进程的控制终端(Controlling Terminal),进程中,控制终端是保存在 PCB 中的信息,而 fork() 会复制 PCB 中的信息,因此由 shell 进程启动的其它进程的控制终端也是这个终端。
  • 默认情况下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制终端,进程从标准输入读也就是读用户的键盘输入,进程往标准输出或标准错误输出写也就是输出到显示器上。
  • 在控制终端输入一些特殊的控制键可以给前台进程发信号,例如 Ctrl + C 会产生 SIGINT 信号,Ctrl + \ 会产生 SIGQUIT 信号。

2.进程组是什么

  • 进程组和会话在进程之间形成了一种两级层次关系:进程组是一组相关进程的集合,会话是一组相关进程组的集合。进程组和会话是为支持 shell 作业控制而定义的抽象概念,用户通过 shell 能够交互式地在前台或后台运行命令。
  • 进行组由一个或多个共享同一进程组标识符(PGID)的进程组成。一个进程组拥有一个进程组首进程,该进程是创建该组的进程,其进程 ID 为该进程组的 ID,新进程会继承其父进程所属的进程组 ID
  • 进程组拥有一个生命周期,其开始时间为首进程创建组的时刻,结束时间为最后一个成员进程退出组的时刻。一个进程可能会因为终止而退出进程组,也可能会因为加入了另外一个进程组而退出进程组。进程组首进程无需是最后一个离开进程组的成员。

3.会话是什么

  • 会话是一组进程组的集合。会话首进程是创建该新会话的进程,其进程 ID 会成为会话 ID。新进程会继承其父进程的会话 ID
  • 一个会话中的所有进程共享单个控制终端。控制终端会在会话首进程首次打开一个终端设备时被建立。一个终端最多可能会成为一个会话的控制终端。
  • 在任一时刻,会话中的其中一个进程组会成为终端的前台进程组,其他进程组会成为后台进程组。只有前台进程组中的进程才能从控制终端中读取输入。当用户在控制终端中输入终端字符生成信号后,该信号会被发送到前台进程组中的所有成员。
  • 当控制终端的连接建立起来之后,会话首进程会成为该终端的控制进程。

4.进程组、会话、控制终端之间的关系

在这里插入图片描述

5.进程组、会话操作有哪些函数

①pid_t getpgrp(void);

  • 该系统调用用于获取当前进程所属的进程组ID(PGID),返回值为当前进程的PGID

②pid_t getpgid(pid_t pid);

  • 该系统调用用于获取指定进程的进程组ID(PGID)pid参数为指定进程的PID,返回值为该进程的PGID

③int setpgid(pid_t pid, pid_t pgid);

  • 该系统调用用于将指定进程加入到指定的进程组中,pid参数为指定进程的PIDpgid参数为指定进程组的PGID,返回值为操作结果,成功返回0,失败返回-1

④pid_t getsid(pid_t pid);

  • 该系统调用用于获取指定进程的会话ID(SID)pid参数为指定进程的PID,返回值为该进程所在的会话的SID

⑥pid_t setsid(void);

  • 该系统调用用于创建一个新的会话,使当前进程成为该会话的会话领导进程,返回值为该会话的SID。如果当前进程已经是一个会话领导进程,则该系统调用会失败返回-1

6. 守护进程是什么

  • 守护进程(Daemon Process),也就是通常说的 Daemon 进程(精灵进程),是Linux 中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。一般采用以 d 结尾的名字。
  • 守护进程具备下列特征:
    • 生命周期很长,守护进程会在系统启动的时候被创建并一直运行直至系统被关闭。
    • 它在后台运行并且不拥有控制终端。没有控制终端确保了内核永远不会为守护进程自动生成任何控制信号以及终端相关的信号(如 SIGINTSIGQUIT)。
  • Linux 的大多数服务器就是用守护进程实现的。比如,Internet 服务器 inetdWeb 服务器 httpd 等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/412127.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java8】新的日期和时间API

【Java8】新的日期和时间API前言为什么要设计新的API?使用LocalDate、LocalTime、LocalDateTimeLocalDateLocalTimeLocalDateTime 合并日期和时间改变日期打印输出及解析日期-时间对象Date和LocalDate、LocalDateTime转换《Java8实战》读书笔记 前言 为什么要设计新…

十二载征程犹未止,看今朝星光尽闪耀丨万字长文回顾2023数据技术嘉年华

4月8日下午,为期两天的第十二届数据技术嘉年华(DTC 2023)在北京新云南皇冠假日酒店圆满落下帷幕。大会得到了工业和信息化部电子五所的支持和指导,围绕“开源融合数字化——引领数据技术发展,释放数据要素价值”这一主…

基于Spring Boot和Vue3打造一个属于自己的博客平台CodeInsight

CodeInsight是一个基于Spring Boot和Vue3技术栈的博客平台,为开发者和技术爱好者提供了一个专注于现代编程技术分享与学习的高质量平台。在本文中,我们将详细介绍CodeInsight的特点、功能模块以及付费专栏内容。 目录: 《用户体验与交互设计实践》 用户模…

AI新宠:Prompt Learning,用提示学习调教大模型

“提示学习”对于很多人来说都是新名词,Prompt Learning 和 Prompting 这两者之间有什么区别和联系呢?现在的一些大模型如何利用“提示语言”呢?本期直播课为大家做了详细介绍,从 AI 范式的一个变迁,到提示学习&#x…

LVGL V9.0基于VS2022仿真搭建(2)

完整Demo,lvgl,lvgl_drivers相关资料下载 链接:https://pan.baidu.com/s/1h3OKCIBQRX0Hn7KjZsynqg 提取码:sc2l 下载的lv_drivers中的win32drv.c及win32drv.h文件是做了修改的,官网下载的lv_drivers编译会报错,因为l…

数据类型。

数据类型分为简单数据类型(值类型)和复杂数据类型(引用类型)值类型:在存储时变量中存储的是值本身(string、number、boolean、undefined、null(null特殊,返回一个空的对象 object&am…

2023年第十三届MathorCup高校数学建模挑战赛|A题|量子计算机在信用评分卡组合优化中的应用

目录 题目详情 最终收入 贷款利息收入 - 坏账损失 赛题说明 1:流程简化及示例 赛题说明 2:QUBO 模型简介 赛题说明 3:赛题数据 问题​ 题目详情 在银行信用卡或相关的贷款等业务中,对客户授信之前,需…

mycat2安装配置,分库分表,一库多表

1、官网下载(官网下载地址) 官网下载地址 Index of /2.0/ 下载模板 下载jdk包 下载好后吧jdk包房到mycat的lib目录下 2、配置启动 配置结构 mycat配置文件夹 clusters- prototype.cluster.json //无集群的时候自动创建- c0.cluster.json- c1.cluster…

jupyter notebook笔记 visualpython

通过界面拖拽生成Python代码 0 安装 pip install visualpythonvisualpy install 出现橙色按钮即为成功 1 主界面 2 logic 一些简单的逻辑运算 以class 为例: 3 Data Analysis 3.1 import 3.2 File(数据集) 3.2.1 读本地文件 3.2.2 写…

【两阶段鲁棒优化】利用列-约束生成方法求解两阶段鲁棒优化问题(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

基于深度学习的农作物叶片病害检测系统(UI界面+YOLOv5+训练数据集)

摘要:农作物叶片病害检测系统用于智能检测常见农作物叶片病害情况,自动化标注、记录和保存病害位置和类型,辅助作物病害防治以增加产值。本文详细介绍基于YOLOv5深度学习模型的农作物叶片病害检测系统,在介绍算法原理的同时&#…

能够翻译文档的免费软件-免费翻译整个文档的软件

chatgpt怎么实现批量翻译 ChatGPT是一种基于人工智能技术的自然语言处理软件,可以实现快速、准确的批量翻译操作,同时也支持多种语言翻译。下面是 ChatGPT 的批量翻译操作流程: 步骤 1: 确定翻译语言和翻译文本 首先需要确定要翻译的原文本…

套接字通信基础

套接字通信基础概述套接字通信基础套接字类型socket模型创建流程分析套接字创建socket()套接字绑定bind()套接字监听listen()套接字接受连接请求accept套接字连接套接字数据传输套接字通信实例服务器端代码客户端代码应用场景总结概述 套接字通信是在Linux系统中实现进程间通信…

WinForms 网格控件 - iGrid.NET 10.1.22 Crack

WinForms 网格控件 - iGrid.NET WinForms 的 10Tec 网格介绍 iGrid.NET 是适用于 Windows Forms 平台的多功能WinForms 网格控件,它是 Microsoft .NET Framework 和 .NET Core 的一部分。软件开发人员使用 iGrid for WinForms 来构建高度可调整的表格界面。它速度…

【MATLAB图像处理实用案例详解(10)】——基于Kalman滤波的目标跟踪预测红色小球位置

目录一、Kalman滤波二、Kalman滤波源程序三、Kalman滤波预测红色小球位置程序实现一、Kalman滤波 Kalman 滤波算法是一个最优化自回归数据处理算法,对于很多问题的解決,它是最优、效率最高甚至是最有用的。Kalman 滤波的广泛应用己经超过30年&#xff0…

LeetCode-120. 三角形最小路径和

目录题目思路动态规划(由上到下)动态规划(由下到上)题目来源 120. 三角形最小路径和 题目思路 由上往下 动态规划(由上到下) 1.确定dp数组以及下标的含义 dp[i][j] 表示从点 (i,j)) 到底边的最小路径和。 2.确定递推公式 常规: triangle[i][j]一定会经过tri…

SQL语句性能分析

1. 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候,该如何思考呢?这里把思考的流程整理成下面这张图。 整个流程划分成了 观察(Show status) 和 行动(Action) 两个部分。字母 S 的部分代表观察&…

连续可调稳压升压电源模块12v转12kv 24v转15kv 12v转5000v

GRB系列高压电源模块是一款工业级高性能微型DC/DC电源模块,是目前全球实 现输出连续可调稳压1000-15000V的超小体积的高压电源模块。具有体积小、功 耗低、响应快、输出纹波低、输出稳定度高、输出电压宽范围可调、自带过流保 护等优点,是一款专门为工业…

uniapp 之 小球根据当前时间 显示位置

目录 效果图 前言 总代码 1. template 代码 2. script 代码 3. js文件 4.样式 注解 1.小球运动代码 2. picker 时间选择器 补充 效果图 前言 最里面的是一张图片&#xff0c;并不是手写的样式&#xff0c; 总代码 1. template 代码 <uni-popup ref"appointm…

一图看懂 stat 模块:解析 stat() 结果, 资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创&#xff0c;转载请声明。 链接: https://blog.csdn.net/Ahcao2008 [TOC](一图看懂 stat 模块&#xff1a;解析 stat() 结果, 资料整理笔记&#xff08;大全&#xff09;) 摘要 全文介绍系统内置 stat 模块、函数、类及类的方法和属性。 它通过代码抓…