位置: 编程技术 - 正文

linux 创建守护进程的相关知识(linux如何创建守护进程)

编辑:rootadmin

创建子进程,父进程退出   这是编写守护进程的第一步。由于守护进程是脱离控制终端的,因此,完成第一步后就会在Shell终端里造成一程序已经运行完毕的假象。之后的所有工作都在子进程中完成,而用户在Shell终端里则可以执行其他命令,从而在形式上做到了与控制终端的脱离。   在Linux中父进程先于子进程退出会造成子进程成为孤儿进程,而每当系统发现一个孤儿进程是,就会自动由1号进程(init)收养它,这样,原先的子进程就会变成init进程的子进程。 在子进程中创建新会话   这个步骤是创建守护进程中最重要的一步,虽然它的实现非常简单,但它的意义却非常重大。在这里使用的是系统函数setsid,在具体介绍setsid之前,首先要了解两个概念:进程组和会话期   进程组:是一个或多个进程的集合。进程组有进程组ID来唯一标识。除了进程号(PID)之外,进程组ID也是一个进程的必备属性。每个进程组都有一个组长进程,其组长进程的进程号等于进程组ID。且该进程组ID不会因组长进程的退出而受到影响。   会话周期:会话期是一个或多个进程组的集合。通常,一个会话开始与用户登录,终止于用户退出,在此期间该用户运行的所有进程都属于这个会话期。   接下来就可以具体介绍setsid的相关内容:   (1)setsid函数作用:   setsid函数用于创建一个新的会话,并担任该会话组的组长。调用setsid有下面的3个作用:   让进程摆脱原会话的控制   让进程摆脱原进程组的控制   让进程摆脱原控制终端的控制   那么,在创建守护进程时为什么要调用setsid函数呢?由于创建守护进程的第一步调用了fork函数来创建子进程,再将父进程退出。由于在调用了fork函数时,子进程全盘拷贝了父进程的会话期、进程组、控制终端等,虽然父进程退出了,但会话期、进程组、控制终端等并没有改变,因此,还还不是真正意义上的独立开来,而setsid函数能够使进程完全独立出来,从而摆脱其他进程的控制。 改变当前目录为根目录   这一步也是必要的步骤。使用fork创建的子进程继承了父进程的当前工作目录。由于在进程运行中,当前目录所在的文件系统(如“/mnt/usb”)是不能卸载的,这对以后的使用会造成诸多的麻烦(比如系统由于某种原因要进入单用户模式)。因此,通常的做法是让”/”作为守护进程的当前工作目录,这样就可以避免上述的问题,当然,如有特殊需要,也可以把当前工作目录换成其他的路径,如/tmp。改变工作目录的常见函数式chdir。 重设文件权限掩码   文件权限掩码是指屏蔽掉文件权限中的对应位。比如,有个文件权限掩码是,它就屏蔽了文件组拥有者的可读与可执行权限。由于使用fork函数新建的子进程继承了父进程的文件权限掩码,这就给该子进程使用文件带来了诸多的麻烦。因此,把文件权限掩码设置为0,可以大大增强该守护进程的灵活性。设置文件权限掩码的函数是umask。在这里,通常的使用方法为umask(0)。 关闭文件描述符   同文件权限码一样,用fork函数新建的子进程会从父进程那里继承一些已经打开了的文件。这些被打开的文件可能永远不会被守护进程读写,但它们一样消耗系统资源,而且可能导致所在的文件系统无法卸下。

推荐整理分享linux 创建守护进程的相关知识(linux如何创建守护进程),希望有所帮助,仅作参考,欢迎阅读内容。

linux 创建守护进程的相关知识(linux如何创建守护进程)

文章相关热门搜索词:linux怎么设置开机启动守护进程,linux创建守护线程,linux如何创建守护进程,linux创建守护进程,linux守护进程可以做什么,linux创建守护进程的步骤,linux创建守护进程,linux创建守护进程的步骤,内容如对您有帮助,希望把文章链接给更多的朋友!

linux删除大量文件的6种方法 首先建立万个文件testforiin$(seq)fordoforechotest$i.txtfordone1rmtesttimerm-f*zsh:sureyouwanttodeleteallthefilesin/home/hungerr/test[yn]?yzsh:argumentlisttoolong:rmrm-f*3.suser0.ss

linux获取系统启动时间示例详解 1、前言时间对操作系统来说非常重要,从内核级到应用层,时间的表达方式及精度各部相同。linux内核里面用一个名为jiffes的常量来计算时间戳。应用

linux启动级别的含义(init 0-6) 0:停机1:单用户形式,只root进行维护2:多用户,不能使用netfilesystem3:完全多用户5:图形化4:安全模式6:重启其实,可以通过查看/etc/rc.d/中的rc*.d的

标签: linux如何创建守护进程

本文链接地址:https://www.jiuchutong.com/biancheng/374748.html 转载请保留说明!

上一篇:创建Linux系统服务的方法(linux系统怎么搭建服务器)

下一篇:linux删除大量文件的6种方法(Linux删除大量文件)

  • 个人租房缴纳由谁缴纳增值税
  • 利润税是多少个点
  • 劳务外包合同需要交税吗
  • 附加税减免吗
  • 会计凭证保管的含义及要求
  • 用于本企业职工的福利应当征收消费税吗
  • 企业预收款项业务不多的情况下可以不设置预收账款科目
  • 税务局加强企业所得税管理
  • 支付境外费用需要交哪些税
  • 预收房款缴所得税会计分录怎么写?
  • 非独立核算的分公司如何报税
  • 领用工程物资的进项税要转出么
  • 违反劳动合同的责任
  • 西安的税务局
  • 自然人借款给企业的涉税风险
  • 购入材料的应付账款包括商业折扣吗
  • 税费是哪个会计科目?
  • 建筑业可以开电费发票吗
  • 免税企业进项怎么处理
  • 会计中坏账准备的借贷方向
  • 取得专用发票是进项还是销项
  • 诊所免税政策
  • 公司股权转让的印花税谁来承担
  • 汇率调整怎么做分录
  • 预缴税款是否计入成本
  • 如何阻止win10升级到win11
  • 销售商品全部退回
  • php curlfile
  • 增值税发票销货清单哪里领
  • dae是什么文件
  • 收取逾期包装物押金怎么算税
  • 取得剧本使用费怎么做账
  • 会计人员准则
  • php 常用算法
  • 资产负债表是不是根据记账凭证生成的
  • 企业汇算清缴后发现有多计提的成本
  • 学会这两种方式英语
  • 花雕典故
  • nodejs 2020
  • python2 tkinter
  • 买一赠一的销售方式
  • 刚开始考会计证有用吗
  • mongodb基本操作
  • mssql使用教程
  • 报关单填制相关规范相关文件
  • 委托加工应税消费品是指委托方提供原料和主要材料
  • 没有发票的支出怎么入账
  • 预付工程款该怎么记账
  • 转贴现占谁的授信
  • 固定资产清理增值税计税依据
  • 衍生工具的作用是什么
  • 汽车4s店费用预算
  • 明细分类账的填写
  • mysql根据时间查询最新一条数据
  • 一个查看明日方舟的网站
  • 该程序无法正常启动
  • 服务器维护和计划的区别
  • 受益无穷还是受用无穷
  • Linux系统磁盘分配
  • 怎样一键重装
  • win10快速切换到桌面快捷键
  • linux文件权限的含义
  • xp系统做完了进不去
  • lhotkey.exe
  • 系统中想禁止运行怎么办
  • cocos2dx视频教程
  • js new option
  • node.js的安装方法
  • 如何用nodejs搭建服务端
  • jQuery ajax分页插件实例代码
  • unity3d图形学
  • js中new一个函数
  • javascript原生函数的源代码
  • listview报错
  • 北京 国税局
  • 小规模纳税人每季度不超过30万免税
  • 不动产租赁和经营租赁发票的区别
  • 新都税务局咨询电话号码
  • 四川农村信用社电话
  • 北京市工会会员卡免费公园有哪些
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设