系统编程--守护进程
2017-06-21 18:19
134 查看
1.什么是守护进程(daemon)?
是运行在后台、独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件的进程
2.为什么需要daemon?
Linux系统在启动时会启动很多服务进程,这个进程没有控制终端,不能直接和用户交互,
os服务进程不能受用户登录注销的影响,他们要一直运行着
3.如何创建daemon?
创建守护进程最关键的一步是调用setside函数创建一个新的Session,并成为Session Leader.
是运行在后台、独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件的进程
2.为什么需要daemon?
Linux系统在启动时会启动很多服务进程,这个进程没有控制终端,不能直接和用户交互,
os服务进程不能受用户登录注销的影响,他们要一直运行着
3.如何创建daemon?
创建守护进程最关键的一步是调用setside函数创建一个新的Session,并成为Session Leader.
int main() { pid_t pc; int i,fd,len; char* buf="this is a daemon\n"; len=strlen(buf); pc=fork(); //创建一个进程来做守护进程 if(pc<0){ printf("error fork!\n"); exit(1); } else if(pc>0){ exit(0); //结束父进程 } setsid(); //使子进程独立,摆脱原会话控制;摆脱原进程组控制;摆脱控制终端控制,有人fork()两次,保证daemon进程,之后不会打开tty设备 chdir("/"); //改变当前工作目录,也是为了摆脱父进程的影响 umask(0); //设置文件权限掩码 for(i=0;i<65535;i++){ close(i); while(1){ if((fd=open("/tmp/daemon.txt",O_CREAT|O_WRONLY|O_APPEND,0600))<0) { printf("open file error!\n"); exit(0); } write(fd,buf,len+1); close(fd); sleep(2); } } }
相关文章推荐
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- 系统编程--进程关系与守护进程
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- Linux系统编程之--守护进程的创建和详解【转】
- Linux系统编程--终端和守护进程
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- linux系统编程之进程(五):终端、作业控制与守护进程
- [linux] C语言Linux系统编程-做成守护进程
- PHP实现系统编程(五)--- 编写守护进程详解
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- Linux系统编程-守护进程
- 【Linux系统编程】特殊进程之守护进程
- linux系统编程之进程(八):守护进程详解及创建,daemon()使用
- Linux 系统编程笔记 守护进程,进程通信
- Linux系统进程控制编程(三)——exec函数族的使用
- Linux系统进程控制编程(六)——wait和waitpid函数
- Linux 守护进程的编程方法
- [收藏] Linux中系统服务/守护进程 (daemon) 的详细说明
- Linux 守护进程的编程方法
- fedira redhat Linux系统守护进程详解