当前位置:网站首页>守护进程
守护进程
2022-08-09 22:04:00 【翔在天上飞】
目录
一、进程的分类
在Linux的操作系统下,进程分别有三种,本文主要探讨这三种中的守护进程。
二、什么是守护进程
守护进程是一种运行在后台的特殊进程,它独立于控制终端并且周期性地执行某种任务或等待处理某些待发生的事件,不需要用户控制就能运行,并提供某种服务,一般为整个系统或者某个用户程序提供服务。
三、使用守护进程的目的
我们使用守护进程是为了让某个进程不因为用户、终端或者其他的变化而受到影响,能够让这个进程一直能够提供服务。Linux下许多服务都是通过守护进程来实现的,比如说0号的调度进程、1号的init进程,他们的运行都没有终端的限制。
四、如何创建守护进程
1、流程图示

2、步骤详解
1、创建子进程,父进程退出。首先,新被创建出的一个子进程,其不可能是进程组组长,这也为后续调用setsid()函数做了准备,setsid函数要求调用他的进程不能是一个进程组组长,否则会出错。然后,父进程退出,是为了让子进程独立出来。
关于进程、进程组、会话的关系:一句话,会话里包含一个或多个进程组,进程组中又包含一个或多个进程。

2、setsid函数的调用,setsid函数创建了一个新会话,能使那个刚被上一步创建出来的子进程完全脱离出来,脱离原终端的控制。
3、重设工作目录,一般就将其设置在根目录之下,这是为了安全起见,防止他被不小心清除了,当然也可以是放在别的安全的目录之下。
4、重设文件掩码,将文件掩码设置为0,设零是为了防止他从父进程那继承下来的文件掩码对其产生影响。文件掩码会影响到文件操作的读写执行权限,所以马虎不得,万一我们需要在这个守护进程下使用一些文件的操作呢,是不,万一他就影响到了呢。
关于文件掩码和文件权限:
文件掩码的设置和文件权限的设置,对于文件来说,是两个相反的影响,打个比方,如果说文件权限设置是个buff,那文件掩码就是个debuff。
举个例子,我们给一个文件设置了文件权限是0666,如果这时的文件掩码是0022,那么最终的文件权限将是0666|0022 = 0644,此运算等价于0666 - 0022 = 0644 这样写是不是更好理解?相信你一定已经理解了。
5、关闭文件描述符,此处关闭的是守护进程从原先他的父进程那继承下来的一些打开的文件流,关闭这些不必要的文件流,一来是为了减小资源的浪费,二来是为了避免一些不必要的错误。
边栏推荐
猜你喜欢
![This article lets you quickly understand implicit type conversion [integral promotion]!](/img/16/4edc7ef23384b22d50ebd894b8911a.png)
This article lets you quickly understand implicit type conversion [integral promotion]!

Basic JSON usage

【TS技术课堂】时间序列预测

国内手机厂商曾为它大打出手,如今它却最先垮台……

阿里云架构师金云龙:基于云XR平台的视觉计算应用部署

Space not freed after TRUNCATE table

leetcode 刷题日记 计算右侧小于当前元素的个数

聊天尬死名场面,你遇到过吗?教你一键获取斗图表情包,晋升聊天达人

Blender程序化建模简明教程【PCG】

leetcode:332. 重新安排行程
随机推荐
JS–比想象中简单
聊聊SQL语句中 DDL 、DML 、DQL 、DCL 分别是什么
Arcgis工具箱无法使用,显示“XML包含错误“的解决方法
【GORM】模型关系-HasMany关系
大型分布式存储方案MinIO介绍,看完你就懂了!
【TS技术课堂】时间序列预测
web 面试高频考点 —— 性能优化篇(手写防抖、手写节流、XXS攻击、XSRF攻击)
leetcode:320.列举单词的全部缩写
OKR 锦囊妙计
This article lets you quickly understand implicit type conversion [integral promotion]!
(转)字符集编码标识符,数字表示字符编码
关于ETL的两种架构(ETL架构和ELT架构)
MySQL——JDBC
OSS文件上传
xctf攻防世界 Web高手进阶区 shrine
README_Albumentations
Flask入门学习教程
POWER SOURCE ETA ETA Power Repair FHG24SX-U Overview
【技术分享】SLA(服务等级协议)原理与配置
第 1 章 一大波数正在靠近——排序