uservd - supply user services
uservd is the daemon called by userv to have a task performed under
different userid while maintaining limited trust between caller and
There is one optional argument:
-daemon Requests that the program daemonise. If this flag is
supplied, uservd will fork and completely detach from the
controlling terminal. If this option is not supplied, uservd
will remain in its starting process group and continue to use
the supplied stderr stream for any runtime system messages;
this is useful for running uservd as a child of init. Errors
detected by uservd itself will be reported via syslog in
uservd issues diagnostics of various kinds to syslog, with facility
LOG_DAEMON. The syslog levels used are:
debug Verbose messages about the activity of the userv daemon.
info Two log messages about the nature and outcome of each
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
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.
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 believed that it was no longer the uservd and so
exited to clean up.
3 uservd was started with incorrect arguments.
4 A system call failure or other environmental problem occurred
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.
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 and so will
not usually be logged anywhere.
The daemon’s per-request children will report the success or otherwise of
its request in their exit status. These are not usually be logged unless
they indicate a serious problem.
All of the environment variables passed to uservd will be inherited by
services as part of the default environment. (If the set-environment
configuration directive is used, then other system configuration files
can modify the environment. Consult the specification.)
Ian Jackson, User service daemon and client specification.
GNU userv, including this manpage, is Copyright (C)1996-2003,2006 Ian
Jackson, except that the userv(1) manpage is Copyright (C)2000 Ben Harris
and Copyright (C)2003 Ian Jackson.
GNU userv is licensed under the terms of the GNU General Public Licence,
version 2 or (at your option) any later version, and it comes with NO
WARRANTY, not even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for details.
You should have received a copy of the GNU General Public License along
with userv, if not, write to the Free Software Foundation, 59 Temple
Place - Suite 330, Boston, MA 02111-1307, USA.
uservd was initially written in 1996 by Ian Jackson. It became GNU
uservd in 1999, and version 1.0 was released in 2000.