当前位置:首页 > 开发 > 开源软件 > 正文

linux守护进程

发表于: 2015-01-26   作者:chuqingq   来源:转载   浏览次数:
摘要: http://www.cnblogs.com/xuxm2007/archive/2011/07/29/2121280.html   1.让init进程成为新产生进程的父进程:即fork并使父进程立即退出 2.调用setsid函数:使得新创建的进程脱离控制终端,同时创建新的进程组,并成为该进程组的首进程     进程组、会话的概念。进程会被所在的进程组、会话(控

http://www.cnblogs.com/xuxm2007/archive/2011/07/29/2121280.html

 

1.让init进程成为新产生进程的父进程:即fork并使父进程立即退出

2.调用setsid函数:使得新创建的进程脱离控制终端,同时创建新的进程组,并成为该进程组的首进程

    进程组、会话的概念。进程会被所在的进程组、会话(控制终端)影响。例如影响之一:在会话1中执行top &,之后在会话2是可以ps到的,但如果关闭会话1,则这个进程也会退出。

3.更改当前工作目录:

    使用fork函数产生的子进程将继承父进程的当前工作目录。当进程没有结束时,其工作目录是不能被卸载的。

    为了防止这种问题发生,守护进程一般会将其工作目录更改到根目录下(/目录)。更改工作目录使用的函数是chdir。

4.关闭文件描述符,并重定向标准输入、输出和错误输出

    守护进程是运行在系统后台的,不应该在终端有任何的输出信息。可以使用dup函数将标准输入、输出和错误输出重定向到/dev/null设备上

5. 设置守护进程的文件权限创建掩码

    很多情况下,守护进程会创建一些临时文件。出于安全性的考虑,往往不希望这些文件被别的用户查看。

    这时,可以使用umask函数修改文件权限,创建掩码的取值,以满足守护进程的要求。

 

daemon的作用就是:1、当参数nochdir为0时,将根目录修改为工作目录,2、noclose为0时,做输入,输出以及错误输出重定向到/dev/null

但是因为不同平台兼容性不好且功能有限,一般不直接使用,而是自己实现。例如redis中自己实现了daemonize()。

 

linux守护进程

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Linux编程技术详解-创建守护进程 由于守护进程的特点,编写守护进程程序必须遵守一定的规则。本节将
1 守护进程中涉及到的基本概念 1.1进程组 1.1.1 进程组基本概念 进程组是一个或多个进程的集合,可
用python模拟linux的守护进程,本篇主要模拟过程。不过也可以用现成的库来直接编写python版的守护进
进程组   一个或多个进程的集合   进程组ID: 正整数   两个函数   getpgid(0)=getpgrp() eg
一、进程组ID 每个进程都属于一个进程组。每个进程组有一个领头进程。进程组是一个或多个进程的集合
一、进程组ID 每个进程都属于一个进程组。每个进程组有一个领头进程。进程组是一个或多个进程的集合
一 Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的
实现守护进程的步骤 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地
实现守护进程的步骤 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地
守护进程 守护进程是一种后台运行并且独立于所有终端控制之外的进程。 为什么需要有独立于终端之外
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号