`
忧里修斯
  • 浏览: 432416 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

守护进程实例

阅读更多
/*                                                                                                                                                                               
**守护进程实例,每隔5s向/tmp/daemon.log中写入当前系统时
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <time.h>
#include <string.h>
#define MAX_SIZE 65535

int main(int argc,char *argv[]){
        
    pid_t pc; 
    int i,fd;
    time_t timep;
    struct tm *timenow;
    char buff[128];

    //1.创建子进程,主进程退出
    pc = fork();
    if(pc == -1){
        perror("Create child process error");
        exit(1);
    }else if(pc > 0){ 
        exit(0);
    }   
    //2.在子进程中创建新会话
    setsid();
    //3.改变当前目录为根目录
    chdir("/");
    //4.重设文件权限掩码
    umask(0);
    //5.关闭文件描述符
    for(i=0;i<MAX_SIZE;i++){
        close(i);
    }   
    //守护进程创建完毕,编写守护进程的工作
    while(1){
        if((fd = open("/tmp/daemon.log",O_CREAT|O_WRONLY|O_APPEND,0600)) == -1){
            perror("Open error");
            exit(1);
        }
        //获取当前日期
        time(&timep);
        timenow = localtime(&timep);
        sprintf(buff,"%s",asctime(timenow));
        write(fd,buff,strlen(buff));
        close(fd);
        sleep(5);
    }

}          
分享到:
评论

相关推荐

    vc MFC 守护进程 实例 release版

    "vc MFC 守护进程 实例 release版"的标题表明这是一个使用Visual C++和MFC开发的守护进程项目,而且已经过优化和调试,进入了发布(release)阶段。这意味着这个程序已经完成了主要的功能开发,进行了性能优化,并且...

    守护进程实例(很实用的编程技巧)

    本实例将带你深入理解守护进程的工作原理,并通过具体的编程实践来学习如何创建和管理守护进程。 在Unix/Linux操作系统中,守护进程是系统服务的核心部分,比如HTTP服务器(如Apache或Nginx)、数据库服务(如MySQL...

    创建Android守护进程实例(底层服务)

    Android 守护进程实例(底层服务)技术要点总结 Android 底层服务是 Android 系统运行的基础,完成 Android 或者说计算机最基本的功能,如连接服务、adb 功能、存储监控等。没有这些底层服务,上层也就没有了对应的...

    PHP守护进程实例

    在上述的PHP守护进程实例中,核心是通过检查和管理PID(Process ID)文件来控制进程的生命周期。代码中定义了一个`start()`函数,它接收一个参数`$file`,这个参数通常是你想要作为守护进程运行的PHP文件名。以下是...

    C语言编写Linux守护进程实例

    守护进程在Linux系统中扮演着重要的角色,它们通常在后台运行,执行特定的服务或任务,例如网络服务器、定时任务管理等。C语言是编写Linux守护进程的常用工具,因为其简洁且接近底层的特性。 首先,理解守护进程的...

    linux守护进程

    #### 四、更复杂的守护进程实例 对于更复杂的需求,比如创建一个支持网络连接的守护进程,可以参考以下代码: ```php #!/usr/local/php/bin/php error_reporting(0); /* 关闭所有错误报告 */ set_time_limit(0); ...

    PHP 守护进程 源码

    6. **避免进程复制**:使用`fork()`函数创建子进程,然后父进程退出,确保只有一个守护进程实例。 现在,我们来看`daemon`这个文件,这是实现PHP守护进程的源码。这个文件可能包含上述步骤的实现,例如,定义了一个...

    守护进程,背靠背c++实现

    如果发现对方进程不存在,就启动一个新的进程实例。这种设计可以提高系统的健壮性,降低被恶意程序一次性全部杀死的风险。 在提供的"daemon"文件中,可能包含了实现上述功能的C/C++代码示例。通过阅读和理解这些...

    使用Python编写Linux系统守护进程实例

    守护进程(daemon)是指在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控。此类程序会被以进程的形式初始化。通常,守护进程没有任何存在的父进程(即PPID=1),且在UNIX系统进程...

    c#实现的守护进程,包含代码

    4. **处理进程关闭事件**:当发现目标进程关闭时,我们可以调用`OnCustomCommand`或`OnStop`方法,然后启动新的进程实例。使用`Process.Start`方法可以创建并启动新进程。 5. **异常处理**:为了保证守护进程自身的...

    C#控制台实现的一个简单的守护进程程序

    5. 如果目标程序意外退出,定时器的事件处理程序将启动新的进程实例,保证服务的连续性。 6. 在控制台应用程序中,可以添加命令行参数来接收目标程序的路径或者配置项,以适应不同场景的需求。 在实际应用中,守护...

    利用C#编写Linux守护进程实例代码

    Linux守护进程是Linux的后台服务进程,相当于Windows服务,对于为Linux开发服务程序的朋友来说,Linux守护进程相关技术是必不可少的,因为这个技术不仅仅是为了开发守护进程,还可以拓展到多进程,父子进程文件描述...

    守护进程 如果指定进程被关闭则重启进程.zip

    在这个特定的案例中,"双守护进程免杀"可能意味着设计者采用了双重守护进程的策略,即有两个守护进程相互监控,如果其中一个被意外终止,另一个可以检测到并立即启动新的实例。这样的设计提高了服务的稳定性和抗干扰...

    Linux守护进程代码实例

    在Linux系统中,守护进程(Daemon)是一种在后台运行且没有控制终端的进程,它们通常在系统启动时启动,负责执行特定的任务,如网络服务、日志记录、计划任务等。守护进程是Linux系统中不可或缺的一部分,它们为系统...

    java实现守护进程,有单独的监听进程, 两个或多个进程,两个或多个jvm

    在Java编程环境中,实现守护进程(Daemon)以及创建多个进程和JVM是非常常见的需求,特别是在构建分布式系统或者需要持续后台运行的服务时。本篇将详细阐述如何使用Java来实现这些功能。 守护进程通常是一个在后台...

    windows守护进程,开机自动重启,进程监测

    因为控制台程序出现过因为连接第三方服务超时直接挂掉(此时负载少了一个节点)以及服务器出现意外重启问题(该服务器所有节点宕机),所以需要一个进程守护程序。 也找过 现场的脚本、python的程序、pm2守护方式,...

Global site tag (gtag.js) - Google Analytics