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

守护进程

1.守护进程的特点

后台服务进程
独立于控制终端
周期性执行某任务
不受用户登录注销影响
一般采用以d结尾的名字(服务)

2.进程组

进程的组长

  • 组里边的第一进程
  • 进程组的ID==进程中的组长的ID

进程中组长的选择

  • 进程中的第一个进程

进程组ID的设定

  • 进程组的ID就是组长的进程ID
3.会话

创建一个会话注意事项

  • 不能是进程组长
  • 创建会话的进程成为新进程组的组长
  • 有些llnux版本需要root权限执行此操作
  • 创建出的新会话会丢弃原有的控制终端
  •  一般步骤;fork, 父亲死,儿子执行创建会话操作(setsid)

获取进程所属的会话ID         pid_t getsid(pid_t pid);
创建一个会话        pid_t setid(void);

4.创建守护进程模型

fork子进程,父进程退出(必须)
子进程创建新会话(必须) setsid();
改变当前工作目录chdir(不是必须的) U盘,./a.out
重设文件拖码

  • 子进程会继承队进程的掩码
  •  增加子进程程序操作的灵活性
  •  umask(0);
  •  不是必须的

关闭文件描述符

  •  close(0)
  •  close(1)
  •  close(2)
  • 释放占用资源
  •  不是必须的

执行核心工作(必须的)


http://www.kler.cn/a/527623.html

相关文章:

  • LeetCode 跳跃类问题的解题技巧:跳跃游戏与最少跳跃数
  • 每日一题——序列化二叉树
  • Linux《基础指令》
  • 初始化mysql报错cannot open shared object file: No such file or directory
  • Swing使用MVC模型架构
  • Linux环境基础开发工具的使用(apt, vim, gcc, g++, gbd, make/Makefile)
  • 代码随想录34 动态规划
  • C动态库的生成与在Python和QT中的调用方法
  • 猿人学web 19题(js逆向)
  • 为AI聊天工具添加一个知识系统 之70 详细设计 之11 维度运动控制的应用:上下文受控的自然语言
  • Git进阶之旅:Git 分支管理
  • gcc和g++的区别以及明明函数有定义为何链接找不到
  • 计算机网络——流量控制
  • CSS 溢出内容处理:从基础到实战
  • 解锁豆瓣高清海报(一) 深度爬虫与requests进阶之路
  • [EAI-029] RoboVLMs,基于VLM构建VLA模型的消融研究
  • Ubuntu 系统,如何使用双Titan V跑AI
  • Learning Vue 读书笔记 Chapter 3
  • 每日一博 - 三高系统架构设计:高性能、高并发、高可用性解析
  • 扩展无限可能:Obsidian Web Viewer插件解析
  • buuuctf_秘密文件
  • 亚博microros小车-原生ubuntu支持系列:18 Cartographer建图
  • 衡水市城区小区地图)矢量高清cdr|pdf大图内容测评
  • Leetcode:541
  • pytorch基于FastText实现词嵌入
  • java求职学习day23