我正在阅读Nginx开源代码,并且想知道为什么有些人会杀死父进程并让子进程处理程序的其余部分?为什么不仅让父进程处理呢?我非常感谢您的帮助。
我使用Eclipse CDT调试程序,但这会导致我的调试陷入僵局,因为它继续调试父进程而不是实际处理程序其余部分的子进程。
以下是代码片段:
我使用Eclipse CDT调试程序,但这会导致我的调试陷入僵局,因为它继续调试父进程而不是实际处理程序其余部分的子进程。
以下是代码片段:
ngx_int_t
ngx_daemon(ngx_log_t *log)
{
int fd;
switch (fork()) {
case -1:
ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "fork() failed");
return NGX_ERROR;
case 0:
break;
default:
exit(0);
}
/* Do stuff*/
}
编辑:我知道这个过程是为了将程序变成守护进程,但我仍然想知道为什么我们要在一开始就这样做呢?