[systemd-devel] [PATCH] gssd: Improve scalability by not waiting for child processes

Florian Weimer fw at deneb.enyo.de
Sun Oct 4 01:19:59 PDT 2015


* Steve Dickson:

> +static void
> +sig_child(int signal)
> +{
> +	int err;
> +	pid_t pid;
> +
> +	/* Parent: just wait on child to exit and return */
> +	do {
> +		pid = wait(&err);
> +	} while(pid == -1 && errno != -ECHILD);
> +
> +	if (WIFSIGNALED(err))
> +		printerr(0, "WARNING: forked child was killed"
> +			 "with signal %d\n", WTERMSIG(err));
> +}

prinerr calls vfprintf or vsyslog.  Neither is safe to use in signal
handlers, so you need to log this message in some other way.

Florian


More information about the systemd-devel mailing list