一。守护进程
1、守护进程的概念
2、守护进程创建流程
2.1创建子进程,退出父进程(fork)
2.2子进程创建新会话(setsid)
2.3改变进程的工作目录(chdir)
2.4指定文件掩码(unmask)
2.5关闭文件描述符,或者重定向 /dev/null (dup2)
2.6开始守护进程主逻辑
2.7退出守护进程
2、守护进程创建
#include<stdio.h> #include<sys/types.h> #include<sys/stat.h> #include<unistd.h> #include<fcntl.h> int mydaemond() { pid_t pid,sid; pid=fork(); if(pid>0) { return 0; } sid=setsid(); int ret=chdir("/home/lushuncheng"); if(ret==-1) { perror("chdir error"); return 0; } umask(0002); close(STDIN_FILENO); int fd=open("/dev/null",O_RDWR); dup2(fd,STDOUT_FILENO); dup2(fd,STDERR_FILENO); } int main() { mydaemond(); //创建守护进程 while(1) { 。//主逻辑 } }