linux创建守护进程

来源:互联网 发布:太极拳威力知乎 编辑:程序博客网 时间:2024/05/28 04:54

偷笑精灵进程它是一个生存期较长的进程,通常独立于控制终端并且周期性的执行某种

任务或等待处理某些发生的事件:

创建守护进程的步骤:
1、创建子进程,父进程退出此时,子进程为孤儿进程,与终端脱离的部分关系

2、在子进程中创建新会话 => setsid()此时,子进程为新建会话组的组长, 

彻底脱离于原bash会话组的关系

3、改变当前目录为根目录 =>chdir(“\”);保证守护进程工作环境的安全性

4、重设umask码为0,不屏蔽任何权限 =>umask(0);

5、关闭终端相关的文件描述符 0,1,2  =>close(0);close(1);close(2);

/*************************************************************************> File Name: daemon.c> Author: XXDK> Email: v.manstein@qq.com > Created Time: Wed 15 Mar 2017 12:56:53 AM PDT ************************************************************************/#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<syslog.h>#include<sys/stat.h>int main(){pid_t pid = fork();if(pid < 0) {perror("fork");}// child processif(pid == 0) {setsid();   // 2. 子进程中创建新会话chdir("/"); // 3. 改变当前目录为根目录umask(0);   // 4. 设置权限掩码close(0);   // 5. 关闭不需要的文件描述符close(1); close(2);while(1) {// 在 /var/log/syslog 文件中查看syslog(LOG_INFO, "xxdk daemon\n");sleep(1);}}else {exit(1);// 1. 父进程退出}}


0 0
原创粉丝点击