赞
踩
1.运行周期长,不需要交互或者在后台执行
2.守护进程编程流程
(1).fork() 退出父进程
(2).setsid()
(3).fork() 退出父进程
(4).chdir("/")
(5).umask(0) //清空掩码
(6).close()
(7).如果有子进程,处理僵死进程
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
- #include <string.h>
- #include <time.h>
- #include <sys/stat.h>
-
- int main()
- {
- pid_t pid = fork();
- if ( pid != 0 )
- {
- exit(0);
- }
-
- setsid();//
-
- pid = fork();
- if ( pid != 0 )
- {
- exit(0);
- }
-
- chdir("/");
-
- umask(0);
-
- int maxfd = getdtablesize();
- for( int i = 0; i < maxfd; i++ )
- {
- close(i);
- }
-
- while( 1 )
- {
- FILE * fp = fopen("/tmp/c2208d.log","a");
- if ( fp == NULL )
- {
- break;
- }
-
- time_t tv;
- time(&tv);//
-
- fprintf(fp,"Time is %s", asctime( localtime(&tv)) );
- fclose(fp);
-
- sleep(5);
-
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。