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

Linux系统编程——守护进程

Linux系统编程——守护进程

守护进程

守护进程也就是通常所说的Daemon进程,是Linux中的后台服务进程。它是一个生存周期较长的进程,通常独立于控制终端并且周期性的执行某种任务或等待处理某些事件。
守护进程常常在系统启动后,开始运行,在系统关闭时终止。
Linux系统常常有很多守护进程,大多数服务都是由守护进程实现的。

守护进程编写步骤

  1. 创建子进程,父进程退出,通过fork实现
  2. 在子进程中创建新会话,通过setsid实现
  3. 改变当前目录为根目录,通过chdir实现
  4. 重设文件权限掩码,通过umask实现
  5. 关闭文件描述符,通过close实现

创建新会话函数

pid_t setsid(void)

所需头文件:sys/types.h、unistd.h
功能:创建新会话,并使得当前进程成为新会话组的组长。
返回值:成功返回新的会话的id,失败返回-1并设置errno。

注意事项:
setsid函数能够使进程完全独立出来,从而脱离h所有其它进程的控制。

修改当前目录

int chdir(const char* path);

所需头文件:unistd.h
功能:修改当前目录为path指定的目录
path:目录路径
返回值:成功返回0,失败返回-1并设置errno。

重设文件权限掩码

mode_t umask(mode_t mask);

所需头文件:sys/types.h、sys/stat.h
功能:修改创建文件时文件权限的掩码
mask:新掩码
返回值:总是成功,几乎不会出错。

实例:

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>int main(){pid_t pid;pid = fork();if (pid < 0) {printf("Fork Failed\n");exit(1);} else if (fork == 0) {int i;setsid(); //创建新会话chdir("/"); //改变工作目录到根目录umask(0); //重设文件权限掩码for(i = 0; i < getdtablesize(); ++i)close(i); //关闭所有打开的文件描符while (1);} else {exit(0); //父进程退出}
}

执行结果:
在这里插入图片描述

http://www.dtcms.com/a/569914.html

相关文章:

  • 【打靶日记】VulNyx 之 Fing
  • 个人简历模板电子版可填写郑州专业seo哪家好
  • 开发与测试的微妙平衡:从“对立”到“合作”的实战经验
  • 开源网站代码濮阳市城乡建设管理局网站
  • C++ 贪心算法(Greedy Algorithm)详解:从思想到实战
  • 新手从零开始学电脑,0元学会重装系统
  • 六安网站制作公司排名网站 绝对路径
  • AMF、SMF 和 UPF在5G网中的位置
  • 门户网站创新的方式有神马搜索seo优化排名
  • ubuntu系统中 jupyter Kernel 频繁崩溃原因
  • 返佣贵金属交易所网站建设工作组赴河南协助
  • 班级网站 模板温州网站策划
  • 笛卡尔坐标系转换(外参矩阵原理与用途)
  • 如何搭建一个简单的网站网站标题psd
  • 黑马JAVAWeb-03 SpringBootWeb-分层解耦-三层架构-@SpringBootApplication注解-IOC控制反转-DI依赖注入
  • 网站评论列表模板公司logo图标
  • Linux_Socket_TCP
  • 拼多多福利券小程序怎么赚钱潍坊seo管理
  • JAVA国际版同城外卖跑腿团购到店跑腿多合一APP系统源码支持Android+IOS+H5
  • 做电锯电音的网站古董手表网站
  • 电力工程设计AI推荐:良策金宝AI以“六大智能”重塑行业效率
  • Yolo12改进策略:下采样改进|IPFA,下采样|信息保留特征聚合模块|即插即用
  • 网站seo内部优化怎么推广平台
  • 零陵区住房和城乡建设局网站百度网址域名大全
  • 0基础学舞蹈,学习计划
  • Redis_4_常见命令(完)+认识数据类型和编码方式
  • 代码交易网站邯郸网站建设费用
  • 黑色网站源码三河市网站建设
  • 20251104让AIO-3576Q38开发板跑Rockchip的原厂Android14之后适配GPIO扩展芯片PCA9555
  • Python基于PyTorch实现多输入多输出进行LSTM循环神经网络回归预测项目实战