zoukankan      html  css  js  c++  java
  • 系统编程--守护进程

    1.什么是守护进程(daemon)?

      是运行在后台、独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件的进程

    2.为什么需要daemon?

      Linux系统在启动时会启动很多服务进程,这个进程没有控制终端,不能直接和用户交互,

      os服务进程不能受用户登录注销的影响,他们要一直运行着

    3.如何创建daemon?

      创建守护进程最关键的一步是调用setside函数创建一个新的Session,并成为Session Leader.  

    int main()
    {
        pid_t pc;
        int i,fd,len;
        char* buf="this is a daemon
    ";
        len=strlen(buf);
        pc=fork();  //创建一个进程来做守护进程
        if(pc<0){
            printf("error fork!
    ");
            exit(1);
        }
        else if(pc>0){
            exit(0);   //结束父进程
        }
        setsid();          //使子进程独立,摆脱原会话控制;摆脱原进程组控制;摆脱控制终端控制,有人fork()两次,保证daemon进程,之后不会打开tty设备
        chdir("/");        //改变当前工作目录,也是为了摆脱父进程的影响
        umask(0);          //设置文件权限掩码
        for(i=0;i<65535;i++){
            close(i);
            while(1){
                if((fd=open("/tmp/daemon.txt",O_CREAT|O_WRONLY|O_APPEND,0600))<0)
                {
                    printf("open file error!
    ");
                    exit(0);
                }
                write(fd,buf,len+1);
                close(fd);
                sleep(2);
            }
        }
    }
    安心下来做技术,笑是最大的福气
  • 相关阅读:
    echarts柱状图实现多条不同颜色渐变
    vue echarts 点击左侧菜单,宽度无法自适应,且支持 窗口大小改变echarts图自适应
    element 单列查询
    js实现双向数据绑定,vue v-model原理
    css3 nth-child使用
    基于工程实践选题的对同类软件产品的调研分析
    深度优先搜索
    迷宫
    元组和字典
    列表
  • 原文地址:https://www.cnblogs.com/JN-PDD/p/7061119.html
Copyright © 2011-2022 走看看