/*
**守护进程实例,每隔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版"的标题表明这是一个使用Visual C++和MFC开发的守护进程项目,而且已经过优化和调试,进入了发布(release)阶段。这意味着这个程序已经完成了主要的功能开发,进行了性能优化,并且...
本实例将带你深入理解守护进程的工作原理,并通过具体的编程实践来学习如何创建和管理守护进程。 在Unix/Linux操作系统中,守护进程是系统服务的核心部分,比如HTTP服务器(如Apache或Nginx)、数据库服务(如MySQL...
Android 守护进程实例(底层服务)技术要点总结 Android 底层服务是 Android 系统运行的基础,完成 Android 或者说计算机最基本的功能,如连接服务、adb 功能、存储监控等。没有这些底层服务,上层也就没有了对应的...
在上述的PHP守护进程实例中,核心是通过检查和管理PID(Process ID)文件来控制进程的生命周期。代码中定义了一个`start()`函数,它接收一个参数`$file`,这个参数通常是你想要作为守护进程运行的PHP文件名。以下是...
守护进程在Linux系统中扮演着重要的角色,它们通常在后台运行,执行特定的服务或任务,例如网络服务器、定时任务管理等。C语言是编写Linux守护进程的常用工具,因为其简洁且接近底层的特性。 首先,理解守护进程的...
#### 四、更复杂的守护进程实例 对于更复杂的需求,比如创建一个支持网络连接的守护进程,可以参考以下代码: ```php #!/usr/local/php/bin/php error_reporting(0); /* 关闭所有错误报告 */ set_time_limit(0); ...
6. **避免进程复制**:使用`fork()`函数创建子进程,然后父进程退出,确保只有一个守护进程实例。 现在,我们来看`daemon`这个文件,这是实现PHP守护进程的源码。这个文件可能包含上述步骤的实现,例如,定义了一个...
如果发现对方进程不存在,就启动一个新的进程实例。这种设计可以提高系统的健壮性,降低被恶意程序一次性全部杀死的风险。 在提供的"daemon"文件中,可能包含了实现上述功能的C/C++代码示例。通过阅读和理解这些...
守护进程(daemon)是指在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控。此类程序会被以进程的形式初始化。通常,守护进程没有任何存在的父进程(即PPID=1),且在UNIX系统进程...
4. **处理进程关闭事件**:当发现目标进程关闭时,我们可以调用`OnCustomCommand`或`OnStop`方法,然后启动新的进程实例。使用`Process.Start`方法可以创建并启动新进程。 5. **异常处理**:为了保证守护进程自身的...
5. 如果目标程序意外退出,定时器的事件处理程序将启动新的进程实例,保证服务的连续性。 6. 在控制台应用程序中,可以添加命令行参数来接收目标程序的路径或者配置项,以适应不同场景的需求。 在实际应用中,守护...
Linux守护进程是Linux的后台服务进程,相当于Windows服务,对于为Linux开发服务程序的朋友来说,Linux守护进程相关技术是必不可少的,因为这个技术不仅仅是为了开发守护进程,还可以拓展到多进程,父子进程文件描述...
在这个特定的案例中,"双守护进程免杀"可能意味着设计者采用了双重守护进程的策略,即有两个守护进程相互监控,如果其中一个被意外终止,另一个可以检测到并立即启动新的实例。这样的设计提高了服务的稳定性和抗干扰...
在Linux系统中,守护进程(Daemon)是一种在后台运行且没有控制终端的进程,它们通常在系统启动时启动,负责执行特定的任务,如网络服务、日志记录、计划任务等。守护进程是Linux系统中不可或缺的一部分,它们为系统...
在Java编程环境中,实现守护进程(Daemon)以及创建多个进程和JVM是非常常见的需求,特别是在构建分布式系统或者需要持续后台运行的服务时。本篇将详细阐述如何使用Java来实现这些功能。 守护进程通常是一个在后台...
因为控制台程序出现过因为连接第三方服务超时直接挂掉(此时负载少了一个节点)以及服务器出现意外重启问题(该服务器所有节点宕机),所以需要一个进程守护程序。 也找过 现场的脚本、python的程序、pm2守护方式,...