要使你自己的程序成为守护进程,其实很简单, 在你的主函数里面调用下面的函数就可以了.
这段代码很完整, 我现在写程序, 如果需要用到守护进程, 就直接拷贝过去使用.
void setup_daemon(void)
{
int i;
for (i = 0; i<NOFILE; ++i)
close(i);
switch (fork())
{
case -1:
{
perror("setup_daemon(), 1st fork()");
exit(2);
}
default:
exit(0);
case 0:
if (setsid()==-1)
{ perror("setup_daemon(), setsid()");
exit(3);
}
switch (fork())
{
case -1:
{
perror("setup_daemon(), 2nd fork()");
exit(3);
}
default:
exit(0);
case 0:
umask(0);
/* and return with daemon set up */
return;
}
}
}