zoukankan      html  css  js  c++  java
  • 守护进程

    一。守护进程

    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)
            {
            。//主逻辑
            }
    }  
  • 相关阅读:
    逼哥
    作业
    malloc的底层实现
    docker基本使用
    对mudo中noncopyable类的理解
    整理
    替换war包中的文件
    SpringMVC(1):SpringMVC入门
    MySQL(5):安装MySQL
    MySQL(4):卸载MySQL
  • 原文地址:https://www.cnblogs.com/sclu/p/11263614.html
Copyright © 2011-2022 走看看