2.30、守护进程(1)

news/2024/5/20 0:19:08/文章来源:https://blog.csdn.net/z2812470857/article/details/130066881

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.luyixian.cn/news_show_96286.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 在循环的try catch中使用continue、break

循环的try catch中使用continue、break。 结论:1. 循环内catch代码端中的的continue、break可以正常生效。 2. 无论是continue还是break,退出循环前都会执行finally中的代码 文章目录代码:情形1(无continue、break)结果…

HTTP协议状态码大全 | 汇总HTTP所有状态码

🔊 HTTP 状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。 HTTP…

有反爬机制就爬不了吗?那是你还不知道反反爬,道高一尺魔高一丈啊

文章目录一、从用户请求的Headers反爬虫二、基于用户行为反爬虫(1)方法1(2)方法2三、动态页面的反爬虫四.总结不知道你们在用爬虫爬数据的时候是否有发现,越来越多的网站都有自己的反爬机制,抓取数据已经不…

300元左右的蓝牙耳机哪个好?300左右音质最好的蓝牙耳机

无线耳机是人们日常生活中必不可少的设备,无论是听音乐化石看电影都能获得身临其境的感觉,由于科技真在发展中,不断地的发生变化,百元价位就可以感受到不错的音色,下面小编整理了几款300左右音质表现不错的蓝牙耳机。 …

Git这么香,为啥还要可视化?

一、降低入门门槛 Github Desktop / Sourcetree / TortoiseGit “工欲善其事,必先利其器”,团队项目开发中的高效协作管理非常重要。 对于高级程序员及IT老兵来说,有了Git直接用命令行管理也许就足够了, 但可视化的工具会降低技术…

【pta刷题】小技巧

好久没更了 写天梯模拟L1都有题不能AC&#xff0c;是什么品种的蒟蒻 L1-7 谷歌的招聘 题目详情 - L1-7 谷歌的招聘 (pintia.cn) 自己写半天都是Segmentation Fault&#xff0c; 学习一下几个函数叭// 1.substr&#xff08;&#xff09;函数 获取子串 #include<bits/st…

Distilling Knowledge via Knowledge Review(引言翻译)

翻译得可能不太准确&#xff0c;希望有能力的各位批评指正&#xff01; Introduction 第一段 深度卷积神经网络&#xff08;CNN&#xff09;在计算机视觉多数任务中取得了显著的成功。 然而&#xff0c;卷积网络的成功往往伴随着相当大的计算和内存消耗&#xff0c; 使得将…

企业级信息系统开发讲课笔记2.3 利用MyBatis实现关联查询

文章目录零、本节学习目标一、查询需求&#xff08;一&#xff09;针对三张表关联查询&#xff08;二&#xff09;按班级编号查询班级信息&#xff08;三&#xff09;查询全部班级信息二、创建数据库表&#xff08;一&#xff09;创建教师表&#xff08;二&#xff09;创建班级…

我的世界服务器配置推荐,搭建我的世界服务器教程

以下是我整理的部分服务器配置建议与教程&#xff0c;供你参考。 服务器配置推荐&#xff1a; 1. CPU&#xff1a;至少是四核心2.5GHz以上的处理器&#xff0c;建议使用Intel Xeon E3系列或AMD Ryzen 5以上系列 2. 内存&#xff1a;建议至少8GB&#xff0c;如果服务器人数较多…

【Linux】工具(5)——gdb

今天我们来到Linux工具的最后一篇博客&#xff1a;gdb的使用 目录 一、Linux下的release和debug 二、gdb常用指令选项 一、Linux下的release和debug 我们先来写一个Makfile&#xff0c;来方便我们编译代码&#xff1a; 再来写一个test.c的源文件&#xff1a; 接着我们使用m…

unity的下载和安装

我做了一个不知道算不算好的决定&#xff0c;其实还是很难过的。但过去的事就让他过去吧&#xff0c;现在开始学习一些其他的东西吧&#xff0c;比如说unity吧。 一、下载安装工具 Unity的国内下载网址&#xff1a;https://unity.cn/ 进入官网后&#xff0c;选择想要的版本 …

CI570 3BSE001440R1适用于数字功能需求较多的设计

CI570 3BSE001440R1适用于数字功能需求较多的设计 尽管纯硅的CMOS 制程被认为仅适用于数字功能需求较多的设计&#xff0c;而不适用于以模拟电路为主的射频IC 设计&#xff0c;不过历经十几年的努力后&#xff0c;随着CMOS 性能的提升、晶圆代工厂在0.25mm 以下制程技术的配合、…

哪个品牌的蓝牙耳机便宜耐用?内行公认四大便宜耐用的蓝牙耳机

蓝牙耳机发展至今&#xff0c;品牌众多&#xff0c;且各品牌旗下拥有无数不同价格的耳机&#xff0c;各自的主打优势又不一样。那么&#xff0c;哪个品牌的蓝牙耳机便宜耐用&#xff1f;下面&#xff0c;我来给大家推荐四款便宜耐用的蓝牙耳机&#xff0c;一起来看看吧。 一、…

Verilog Tutorial(7)If语句和Case语句

写在前面在自己准备写verilog教程之前&#xff0c;参考了许多资料----FPGA Tutorial网站的这套verilog教程即是其一。这套教程写得不错&#xff0c;只是没有中文&#xff0c;在下只好斗胆翻译过来&#xff08;加了自己的理解&#xff09;分享给大家。这是网站原文&#xff1a;h…

webassembly——同源策略问题的处理(浏览器不能加载本地资源的问题)

原因&#xff1a;在用chatGPT生成可视化地图前端文件后&#xff0c;打开不能正常显示 WebAssembly是一种新的二进制代码格式&#xff0c;它可以提供更高的性能和更好的安全性。WebAssembly遵循同源策略&#xff0c;这意味着只有与运行WebAssembly代码相同域名下的JavaScript代码…

FPGA采集AD7606数据UDP网络传输 提供工程源码和技术支持 附带上位机接收软件

目录1、前言2、我这里已有的UDP方案3、AD7606采集详解4、UDP设计方案5、AD7606 UDP传输详细设计方案UDP应用的设计思路获取FPGA网卡信息获取数据UDP发送数据组包UDP发送流程6、vivado工程详解7、上板调试验证并演示8、福利&#xff1a;工程代码的获取1、前言 目前网上的fpga实…

将excel导入到sqlite的方法代码

Python实现excel转sqlite的方法&#xff0c;具体如下&#xff1a; Python环境的安装配置就不说了&#xff0c;个人喜欢pydev的开发环境。 python解析excel需要使用第三方的库&#xff0c;这里选择使用xlrd 下面是源代码&#xff1a; #!/usr/bin/python # encodingutf-8 Creat…

[C语言]结构体大小计算——你的心到底够不够装下我

结构心中时满时不满&#xff0c;心中装人心更大&#xff0c;究竟海王或专一&#xff0c;详解干货把理讲。 除了C语言的基础数据类型以外&#xff0c;还允许用户创建自定义类型&#xff0c;而对于最常用的自定义类型&#xff1a;结构体 的大小计算自然就非常重要了。 结构体 …

迁移学习常用数据集

目录 Office-31 PACS Office-Caltech10 MNISTUSPS 迁移学习常用数据集 Office-31 Office-31 Dataset 即 Office Dataset 是视觉迁移学习中的主流基准数据集&#xff0c;该数据集包含了31类办公室环境中常见的目标物体&#xff0c;如笔记本电脑、文件柜、键盘等&#xff0…

银河麒麟V10操作系统之root密码重置

一、需求说明 从kingbase工程师那拷贝了一个已经安装了kingbase数据库环境的虚拟机&#xff0c;只有一个kingbase普通账户&#xff0c;root密码位置&#xff0c;且该账户未加入到sudo组中&#xff0c;无法执行新软件等的安装和部署。为了满足需要&#xff0c;我们需要重置root密…