栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

利用C语言如何创建一个守护进程

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

利用C语言如何创建一个守护进程

守护进程 1、守护进程的特点:

运行周期长,在后台执行,一般不需要和用户进行交互

2、相关概念:

会话:一个终端的打开会伴随着一个会话的建立,当退出终端,会话结束
会话首进程:终端运行的第一个进程
会话首进程的id就是会话的id

进程组:终端中执行的命令,比如执行ls,就会创建一个进程组,如果ls结束,进程组就会结束
组长进程:进程组中的第一个进程
组长进程的id就是进程组的id

3、自己编写一个守护进程: 3.1获取各种id的方法:

会话id——getsid
组id(就是组长id)——getpgrp
当前进程的id——getpid

3.2编程流程:

①fork(),退出父进程
②setsid(),创建一个新的会话
③fork(),退出父进程
④chdir("/"),将工作目录改到根目录,从而保证这个进程工作不会对我们产生影响
⑤umask(0),清除掩码
⑥close()
⑦如果产生子进程就要处理僵死进程

3.3业务流程:

创建一个守护进程,启动之后在后台执行,周期性的向文件中写出当前的时间

3.4代码:
#include 
#include 
#include 
#include 
#include 
#include 
void Daemon()
{
    pid_t pid=fork();
    if(pid!=0)
    {
        exit(0);
    }

    setsid();//创建新会话

    pid=fork();
    if(pid!=0)
    {
        exit(0);
    }

    chdir("/");
    umask(0);
    int size=getdtablesize();
    for(int i=0;i 
3.5程序运行结果: 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/605320.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号