- 论坛徽章:
- 0
|
关于shell写mysql
原帖由 "starboo" 发表:
很想知道你那个守护进程是怎么实现的。可以公布源码吗?
我也很想要类似功能的程序。
可以给我?
我参考的是清华出的unix编程
init.c
#include<unistd.h>
#include<signal.h>
#include<sys/param.h>
#include<sys/types.h>
#include<sys.stat.h>
void init_daemon(void){
int pid,i;
if(pid=fork()) exit(0);//是父进程,退出父进程
elseif(pid<0) exit(1);//fork失败,就退出;是子进程后台执行
setsid();//第一子进程成为新的会话组长
if(pid=fork()) exit(0);是第一子进程,结束它
elseif(pid<0) exit(1);/*fork失败,退出;是第二子进程,继续;是第二子进程继续,第二子进程 不再是会话长*/
for(i=0;i<NOFILE;++I)//关闭打开的文件描述符
close(i);
chdir("/tmp" ;//改变工作目录
umask(0);/重设文件创建掩码
return;
}
在主进程中初始化init_daemon负责生成守护进程。 |
|