daemon 实例程序
来源:互联网 发布:马云菜鸟网络 编辑:程序博客网 时间:2024/06/14 13:13
/*
* daemon.c
*
* Created on: 2011-11-9
* Author: lc
*/
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>
#include <stdlib.h>
#include <sys/stat.h>
#define MAXFD 65535
int main(int argc, char **argv) {
pid_t cid;
int i;
int fd;
int len;
char buf[] = "this is daemon running...\n";
len = strlen(buf);
//step 1 : 创建子进程,关闭父进程
cid = fork();
if (cid < 0) {
perror("fork");
exit(1);
} else if (cid > 0) {
exit(0);
} else {
//子进程执行
//step 2 : 在子进程中创建新的session和进程组,使该进程成为新进程组和新session的leader进程 ,
//使子进程脱离于原父进程相同的 控制终端(CTTY),进程组号,session
setsid();
//step 3 : 改变子进程工作目录,使之与父进程不同
chdir("/");
//step 4 : 改变umask掩码
umask(0);
//step 5 : 关闭继承的打开的文件
for (i = 0; i < MAXFD; i++) {
close(i);
}
//守护进程执行
while (1) {
if ((fd = open("/tmp/daemon.log", O_CREAT | O_APPEND | O_WRONLY,
0777)) < 0) {
perror("open");
exit(1);
}
write(fd, buf, len + 1);
close(fd);
sleep(10);
}
}
return 0;
}
- daemon 实例程序
- daemon程序
- daemon进程实例分析
- Unix daemon程序
- 简单的daemon程序
- 怎么写Daemon程序
- linux实现daemon程序
- 写Daemon程序框架
- Daemon程序简介
- daemon程序示例
- 使用qpm创建daemon程序
- daemon
- Daemon
- Daemon
- daemon
- daemon
- daemon
- daemon
- Oracle数据库的系统和对象权限
- 线程的同步
- xen中cpu调度算法credit的过程详解
- 自定义标签
- el表达式总结
- daemon 实例程序
- smarty2
- 集合和列表3
- 关于String和inputStream的转换
- jsp标签
- 菜鸟学java 网络视频笔记 第二课(by Super)
- JS与C#后台 函数、变量之间相互调用
- 自定义标签
- poj 2001 Shortest Prefixes