NAME¶
uservd
—
supply user services
SYNOPSIS¶
DESCRIPTION¶
uservd
is the daemon called by
userv
to have a task performed under
different userid while maintaining limited trust between caller and callee.
OPTIONS¶
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 either case.
SYSLOG MESSAGES:¶
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 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.
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 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 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 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.
ENVIRONMENT¶
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.)
SEE ALSO¶
userv(1) init(8)
Ian Jackson,
User service daemon and client specification.
COPYRIGHT¶
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.
HISTORY¶
uservd
was initially written in 1996 by Ian
Jackson. It became GNU
uservd
in 1999, and
version 1.0 was released in 2000.