if(fork()) exit(0);
if(setsid() < 0)/* 脱离进程组,脱离控制终端 */
{
perror("setsid()");
exit(-1);
}
if(fork()) /* 创建子进程,禁止守护进程控制终端*/
{
exit(0);
}
dosomething();
本文详细介绍了如何使用fork()和setsid()系统调用来创建守护进程,并脱离控制终端,实现后台运行。通过两次fork()调用避免了僵尸进程的产生。
if(fork()) exit(0);
if(setsid() < 0)/* 脱离进程组,脱离控制终端 */
{
perror("setsid()");
exit(-1);
}
if(fork()) /* 创建子进程,禁止守护进程控制终端*/
{
exit(0);
}
dosomething();

被折叠的 条评论
为什么被折叠?