zoukankan      html  css  js  c++  java
  • 1、memcache的守护进程启动方式(2017-8-10)

    想开始研究下memcache的源码,不知从哪下手,就从守护进程启动开始吧,主要是比较简单

    /**
     * 守护进程启动
     * @param nochdir   是否切换到根目录
     * @param noclose   是否关闭标准IO
     * @return 
     */
    int deamonize(int nochdir, int noclose) {
        int fd;
        switch (fork()) {   //unistd.h
                //fork出错
            case -1:
                return (-1);
                //子进程
            case 0:
                break;
                //父进程
            default:
                _exit(EXIT_SUCCESS);
        }
        if (setsid() == -1) {
            return (-1);
        }
        if (nochdir == 0) {
            if (chdir("/") != 0) {
                perror("chdir");
                return (-1);
            }
        }
        if (noclose == 0 && (fd = open("/dev/null", O_RDWR, 0)) != -1) {
            if (dup2(fd, STDIN_FILENO) < 0) {
                perror("dup2 stdin");
                return (-1);
            }
            if (dup2(fd, STDOUT_FILENO) < 0) {
                perror("dup2 stdout");
                return (-1);
            }
            if (dup2(fd, STDERR_FILENO) < 0) {
                perror("dup2 stderr");
                return (-1);
            }
        }
        return (0);
    }
  • 相关阅读:
    webpack入门+react环境配置
    mailto: HTML e-mail 链接
    IE兼容性手册
    浏览器内核Trident/Gecko/WebKit/Presto
    抓包
    js页面埋点
    http返回码
    meta
    img和css背景的选择
    谈谈Web前端工程师的定位
  • 原文地址:https://www.cnblogs.com/bai-jimmy/p/7401829.html
Copyright © 2011-2022 走看看