* initgroups(3) must use setgroups(2) and dynamic
linking must allow overriding setgroups(2) for initgroups(3);
-DAEMON INVOCATION:
-
-The daemon can be invoked with no arguments, in which case it will not
-fork or detach itself. This is suitable for running from init and
-similar arrangements.
-
-With -daemon it will attempt to detach itself from the controlling
-terminal and fork/exit so that control returns at startup.
-
-In both cases diagnostics which prevent correct startup will appear on
-stderr.
-
-SYSLOG MESSAGES:
-
-The daemon issues diagnostics of various kinds to syslog, usually with
-facility LOG_DAEMON (though this can be changed in daemon.h if you want).
-The syslog levels used are:
- debug - verbose messages about the activity of the userv daemon.
- info - two log message about the nature and outcome of each request.
- notice - messages about the status of the daemon, including the
- startup message and the hourly socket check messages.
- warning - if the uservd exits because it believes that it no longer
- controls the rendezvous socket (ie, its socket has become
- orphaned), this level will receive messages indicating why
- the daemon believes this and notifying of its shutdown.
- err - a believed-recoverable error condition was detected by the
- userv server in itself, the client or the operating system
- (this includes resource shortages). The uservd will try to
- continue.
- crit - the uservd detected a non-recoverable error condition
- after startup and will exit.
- alert - not used.
- emerg - not used.
-
-The service configuration language has the facility to direct error
-and warning messages to syslog. The default facility and level is
-user.err, but the author of the configuration file(s) can override
-this.
-
-DAEMON EXIT STATUS:
-
-The daemon's exit code will reflect how well things went:
-
- 0 - The daemon was asked to detach itself from the controlling
- terminal and this appears to have been done successfully.
- 1* - The daemon got a SIGTERM or SIGINT and shut itself down.
- 2* - The daemon believes that it was no longer the uservd and so has
- exited to clean itself up.
- 3 - uservd was started with incorrect arguments.
- 4 - A system call failure or other environmental problem occurred
- during startup.
- 5* - There was a non-recoverable error after startup; the uservd had
- to exit.
- 6 - The daemon was asked to detach itself, but its detaching child
- died for some unexpected reason.
-
- SIGABRT/SIGIOT* - an unexpected internal error, usually caused by a
- bug in uservd. This can also occur if an attempt to block signals
- using sigprocmask fails.
-
-Outcomes marked * are not possible if the daemon is asked to detach
-itself - these exit statuses will be reaped by init instead.
+EXIT STATUS CODES
+
+For information about uservd's exit status, see uservd(8).
The daemon's per-request children will note the success level of its
request in its exit status. This will not usually be logged unless it