- Whenever a password/shell is changed via rpc.yppasswdd, the daemon leaves

one zombie process because it does not do the cleanup. For a long running
  NIS/YP server, it will have lots of zombie processes on it. Fix that by
  ignoring the SIGCHLD signal since we don't really care about the exit
  status in this case.

PR:		bin/91980
Reported by:	Arjan van der Velde <dj_noresult at hotmail.com>
Submitted by:	Jui-Nan Lin" <jnlin at csie.nctu.edu.tw>
Reviewed by:	delphij
MFC after:	1 month
This commit is contained in:
rafan 2008-10-30 01:54:31 +00:00
parent 5f78e537d9
commit 5256ae4dbd

View File

@ -165,6 +165,7 @@ main(int argc, char *argv[])
struct sockaddr_in saddr;
socklen_t asize = sizeof (saddr);
struct netconfig *nconf;
struct sigaction sa;
void *localhandle;
int ch;
char *mastername;
@ -268,6 +269,9 @@ the %s domain -- aborting", yppasswd_domain);
}
}
openlog("rpc.yppasswdd", LOG_PID, LOG_DAEMON);
memset(&sa, 0, sizeof(sa));
sa.sa_flags = SA_NOCLDWAIT;
sigaction(SIGCHLD, &sa, NULL);
rpcb_unset(YPPASSWDPROG, YPPASSWDVERS, NULL);
rpcb_unset(MASTER_YPPASSWDPROG, MASTER_YPPASSWDVERS, NULL);