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守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux...
linux守护进程程序模板带详细注释 守护进程日志 不能被多次运行 详细解释:https://i-beta.cnblogs.com/posts/edit;postId=12095412
Linux守护进程的编程方法 出处未知 pdf格式
Linux 守护进程的编程方法,几个源码实例
LINUX守护进程介绍 amd:自动安装NFS(网络文件系统)守侯进程 apmd:高级电源管理 Arpwatch:记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库 Autofs:自动安装管理进程automount,与NFS相关,...
该文档说明在linux下实现守护进程,代码简单易懂,思路清楚。
编写Linux守护进程
Linux守护进程 Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程Linux守护进程
Linux守护进程的研究Linux守护进程的研究Linux守护进程的研究Linux守护进程的研究
编写Linux守护进程.pdf
Linux守护进程启动进程健康监测进程 文件名:start.sh 参数说明: # 应用名(查进程关键字): APP_NAME=smart_school-boot # 应用端口(健康监测用): APP_PORT=17206 # 应用健康检查URL(健康检查):...
本教程:在debian或redhat或ubuntu下编程写的daemon(守护进程),如何让它随系统启动而启动?
基于Linux守护进程的分析与实现.pdf
Linux守护进程的研究.pdf
【ASP.NET编程知识】.net Core 3.0 WebApi 创建Linux守护进程的方法.docx
c++ linux 守护进程
这个是linux守护进程的实例,非常的简洁,内有makefile,c文件,脚本都有,希望能对你有所帮助。脚本的教程见:http://blog.csdn.net/luopeiyuan1990/article/details/8193359#t19 守护进程的教程见:...