美文网首页
守护进程

守护进程

作者: 二进制人类 | 来源:发表于2022-09-27 10:56 被阅读0次

步骤

  1. 创建一个子进程,父进程退出,脱离父进程所依赖的终端。

  2. 创建一个新的会话

    1. 进程组:就是多个进程的集合;
    2. 会话:是多个进程组的集合;
  3. 修改工作目录:一般情况下可以修改为根目录(/)或者/tmp

  4. 改变文件权限掩码:umask值

  5. 关闭进程中所有已打开文件的文件描述符;

实例

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int DaemonInit(void)
{
    int ret;
    pid_t pid;
    /* 1. 创建子进程,父进程退出 */
    pid = fork();
    if (pid == -1)
    {
        perror("fork");
        return -1;
    }
    else if(pid != 0)
    {
        exit(EXIT_SUCCESS);
    }
    /* 2. 创建新的会话 */
    pid = setsid();
    if (pid == -1)
    {
        perror("setpid");
        return -1;
    }
    /* 3. 修改工作目录 */
    ret = chdir("/tmp");
    if (ret == -1)
    {
        perror("chdir");
        return -1;
    }
    /* 4. 修改文件权限掩码 */
    umask(0);
    /* 5. 关闭进行中所有已打开文件的文件描述符 */
    int num = getdtablesize();
    int fd;
    for (fd = 0; fd < num; fd++)
        close(fd);
    return 0;
}

int main()
{
    DaemonInit();
    /* 守护进程功能实现 :创建一个文件作为项目日志文件,当前时间写入到日志文件中 */
}

相关文章

  • rsync服务企业应用

    守护进程服务企业应用: 守护进程多模块功能配置 守护进程的排除功能实践 守护进程来创建备份目录 守护进程的访问控制...

  • Python多进程

    守护进程 守护进程其实就是“子进程“是否伴随主进程一起结束:守护==>伴随,即守护进程会伴随主进程的代码运行完毕后...

  • 守护进程和守护线程详解

    守护进程 什么是守护进程? 守护进程会在主进程代码运行结束的情况下,立即挂掉。 守护进程本身就是一个子进程。 主进...

  • 4.5、守护进程及信号处理实战

    1、守护进程功能的实现守护进程融入项目,解放终端。相关配置:Daemon = 1;按照守护进程的方式运行守护进程如...

  • PHP创建守护进程

    PHP 创建守护进程 执行守护进程

  • forever

    start:启动守护进程stop:停止守护进程stopall:停止所有的forever进程restart:重启守护...

  • 进程守护进程

    什么是守护进程?Linux 的大多数服务器就是用守护进程实现的,使用ps -axj可以查看守护进程: 守护进程基本...

  • redis.conf详解之daemonize

    用法 作为非守护进程运行 作为守护进程运行 注意事项: 默认情况下,Redis不作为守护进程运行。如果以守护进程运...

  • 守护进程,互斥锁,队列,生产者消费者模型

    守护进程 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束后就终止 其二:守护进程内无法再开启子进...

  • 开源HIDS-Wauzh功能测试

    一、Wazuh 守护进程及工具进程 守护进程 ossec-agentd https://documentation...

网友评论

      本文标题:守护进程

      本文链接:https://www.haomeiwen.com/subject/zpkqartx.html