#include
#include
#include
#include
#include
#include
#define MAXFILE 65535
int main(void)
{
pid_t child1,child2;
int i;
child1=fork();//创建子进程1
if(child1==-1)//出错判断
{
perror("child1 fork");
exit(1);
}
else if(child1>0)//如果运行在父进程就退出
{
exit(0);
}
openlog("exc2_info",LOG_PID,LOG_DAEMON);//打开日志服务
setsid();//下面就开始编写守护进程
chdir("/");
umask(0);
for(i=0;i {
close(i);
}
child2=fork();//创建子进程2
if(child2==-1)
{
perror("child2 fork");
exit(1);
}
else if (child2==0)//在日志中写入字符串
{
syslog(LOG_INFO,"child2 will sleep for 10s");
sleep(10);
syslog(LOG_INFO,"child2 is going to exit !");
exit(0);
}
else
{
waitpid(child2,NULL,0);//关闭日志服务
syslog(LOG_INFO,"child1 noticed that child2 has exited");
closelog();
while(1)
{
sleep(10);
}
}
}
阅读(720) | 评论(1) | 转发(0) |