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);
}
看来毫无意义对我来说,因为它只是别人的PID变化,什么都没有。像这样守护进程的目的是什么?
有什么好处?这样,当启动它的用户退出其会话,该进程仍然运行
这对我来说很有意义。 – cpuer 2011-06-01 07:13:33
@Blagovest Buyukliev,你的意思是shell如果在'fork'之后没有调用'setsid',它仍然会在那里等待? – cpuer 2011-06-01 07:18:39
如果'setsid'未被调用,shell将不会等待,但在启动它的用户注销后该进程将终止,而通常这对于守护进程来说并不合适。 – 2011-06-01 07:20:12