\fBupsd\fR is responsible for serving the data from the drivers to the clients\&. It connects to each driver and maintains a local cache of the current state\&. Queries from the clients are served from this cache, so delays are minimal\&.
.sp
It also conveys administrative messages from the clients back to the drivers, such as starting tests, or setting values\&.
.sp
Communication between \fBupsd\fR and clients is handled on a TCP port\&. Configuration details for this port are described in \fBupsd.conf\fR(8)\&.
.sp
This program is essential, and must be running at all times to actually make any use out of the drivers and clients\&.
.sp
Controls in the configuration files allow you to limit access to the server, but you should also use a firewall for extra protection\&. Client processes such as \fBupsmon\fR(8) trust \fBupsd\fR for status information about the UPS hardware, so keep it secure\&.
.SH"OPTIONS"
.PP
\fB\-c\fR\fIcommand\fR
.RS4
Send
\fIcommand\fR
to the background process as a signal\&. Valid commands are:
.PP
\fBreload\fR
.RS4
reread configuration files
.RE
.PP
\fBstop\fR
.RS4
stop process and exit
.RE
.RE
.PP
\fB\-D\fR
.RS4
Raise the debug level\&. Use this multiple times for additional details\&.
.RE
.PP
\fB\-h\fR
.RS4
Display the help text\&.
.RE
.PP
\fB\-r\fR\fIdirectory\fR
.RS4
upsd will
\fBchroot\fR(2) to
\fIdirectory\fR
shortly after startup and before parsing any configuration files with this option set\&. You can use this to create a "jail" for greater security\&.
.sp
You must coordinate this with your drivers, as upsd must be able to find the state path within
\fIdirectory\fR\&. See
\fBupsdrvctl\fR(8)
and
\fBnutupsdrv\fR(8)\&.
.RE
.PP
\fB\-u\fR\fIuser\fR
.RS4
Switch to user
\fIuser\fR
after startup if started as root\&. This overrides whatever you may have compiled in with
configure \-\-with\-user\&.
.RE
.PP
\fB\-V\fR
.RS4
Display the version of the program\&.
.RE
.SH"RELOADING"
.sp
upsd can reload its configuration files without shutting down the process if you send it a SIGHUP or start it again with \-c reload\&. This only works if the background process is able to read those files\&.
.sp
If you think that upsd can\(cqt reload, check your syslogs for error messages\&. If it\(cqs complaining about not being able to read the files, then you need to adjust your system to make it possible\&. Either change the permissions on the files, or run upsd as another user that will be able to read them\&.
.sp
DO NOT make your upsd\&.conf or upsd\&.users world\-readable, as those files hold important authentication information\&. In the wrong hands, it could be used by some evil person to spoof your master upsmon and command your systems to shut down\&.
.SH"DIAGNOSTICS"
.sp
upsd expects the drivers to either update their status regularly or at least answer periodic queries, called pings\&. If a driver doesn\(cqt answer, upsd will declare it "stale" and no more information will be provided to the clients\&.
.sp
If upsd complains about staleness when you start it, then either your driver or configuration files are probably broken\&. Be sure that the driver is actually running, and that the UPS definition in \fBups.conf\fR(5) is correct\&. Also make sure that you start your driver(s) before starting upsd\&.
.sp
Data can also be marked stale if the driver can no longer communicate with the UPS\&. In this case, the driver should also provide diagnostic information in the syslog\&. If this happens, check the serial or USB cabling, or inspect the network path in the case of a SNMP UPS\&.
.SH"ACCESS CONTROL"
.sp
If the server is build with tcp\-wrappers support enabled, it will check if the NUT username is allowed to connect from the client address through the /etc/hosts\&.allow and /etc/hosts\&.deny files\&. Note that this will only be done for commands that require to be logged into the server\&. Further details are described in \fBhosts_access\fR(5)\&.
.SH"FILES"
.sp
The general upsd configuration file is \fBupsd.conf\fR(5)\&. The administrative functions like SET and INSTCMD for users are defined and controlled in \fBupsd.users\fR(5)\&. UPS definitions are found in \fBups.conf\fR(5)\&.
.SH"ENVIRONMENT VARIABLES"
.sp
\fBNUT_CONFPATH\fR is the path name of the directory that contains upsd\&.conf and other configuration files\&. If this variable is not set, \fBupsd\fR uses a built\-in default, which is often /usr/local/ups/etc\&.
.sp
\fBNUT_STATEPATH\fR is the path name of the directory in which \fBupsd\fR keeps state information\&. If this variable is not set, \fBupsd\fR uses a built\-in default, which is often /var/state/ups\&. The \fBSTATEPATH\fR directive in \fBupsd.conf\fR(5) overrides this variable\&.