UPSD(8)
π UPSD β the NUT data server, aka the main character of your UPS setup π
okay bestie, so this is the upsd manual page β it lives in the NUT Manual, section 8 (that's the sysadmin/daemon section, iykyk). She's the server, she's the moment, and honestly nothing works without her. Let's get into it. β¨
πΈ NAME πΈ
upsd β Network UPS Tools data server. That's her. That's the whole vibe.
β¨ SYNOPSIS β¨
upsd -h
upsd [OPTIONS]
π DESCRIPTION π
So upsd is the one responsible for serving up the data from the drivers to the clients. She connects to each driver and keeps a little local cache of the current state β like her own mental notes app π β and queries from the clients get served straight out of that cache, so delays are, like, minimal. Slay.
She also carries administrative messages back from the clients to the drivers, things like starting tests, or setting values. Two-way queen. π«Ά
Communication between upsd and the clients happens over a TCP port. All the config deets for that port are described in upsd.conf(5).
This program is essential, and she has to be running at all times for you to actually get any use out of the drivers and clients. The one exception: final UPS power-off commands right before your server goes down β those NUT driver programs can handle alone, when called as drivername -k in a shutdown hook or a late ordered SysV init script. So like, one tiny exception, don't get it twisted.
Controls in the configuration files let you limit access to the server, but you should also use a firewall for extra protection. Client processes like upsmon(8) literally trust upsd for status info about the UPS hardware, so keep it secure. No cap. π
π OPTIONS π
-ccommand β send command to the background process as a signal. The valid commands are:reloadβ reread configuration filesstopβ stop process and exit
-Ppid β send the command signal above using the specified PID number, rather than consulting the PID file. This is lowkey so helpful for defining service units that startupsdas a foreground process, so it never creates a PID file at all. See also the-FFoption as an alternative.-Dβ raise the debugging level.upsdwill run in the foreground by default with this, and will print info on stdout about the monitoring process. Use this option multiple times for more details β stack it up, babe.-Fβupsdwill run in the foreground, regardless of debugging settings. Specify it twice (-FFor-F -F) to save the PID file even in this mode.-Bβupsdwill run in the background, regardless of debugging settings.-hβ display the help text. π-rdirectory βupsdwillchroot(2)to directory shortly after startup, and before parsing any configuration files with this option set. You can use this to build a "jail" for greater security. π You must coordinate this with your drivers, becauseupsdhas to be able to find the state path within directory. Seeupsdrvctl(8)andnutupsdrv(8).-uuser β switch to user after startup, if started as root. This overrides whatever you may have compiled in withconfigure --with-user.-Vβ display the version of the program.
π¦ RELOADING π¦
upsd can reload her configuration files without shutting the whole process down β just send her a SIGHUP, or start her again with -c reload. π«
But this only works if:
- the background process is actually able to read those files (permissions, chroot jail), and
- the daemon did save a PID file when it started (because the reload command needs to find the older instance).
Note π Service instances wrapped by systemd or SMF might not save them by default β use the respective reload/refresh framework actions instead then, e.g.systemctl reload nut-serverNUT releases after 2.8.0 define aliases for these units, so if your Linux distribution uses NUT-provided unit definitions,systemctl reload upsdmay also work.
If you think upsd can't reload, go check your syslog for error messages. If it's 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, or restart it fully β you might need that last one if you're running in a chroot jail.
DO NOT make yourupsd.conf(5)orupsd.users(5)files world-readable, bestie. They hold important authentication information. In the wrong hands, some evil person could use it to spoof your primary-modeupsmonand command your systems to shut down, for example. π Lock that down.
π₯ DIAGNOSTICS π₯
upsd expects the drivers to either update their status regularly, or at least answer periodic queries β those are called pings. If a driver doesn't answer, upsd will declare it "stale" and no more information will be provided to the clients. π
If upsd complains about staleness when you start it, then either your driver or your configuration files are probably broken. Be sure that:
- the driver is actually running, and
- the UPS definition in
ups.conf(5)is correct.
Also make sure you start your driver(s) before starting upsd. Order matters, babe.
Data can also be marked stale if the driver can no longer communicate with the UPS. In that 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. π
π ACCESS CONTROL π
If the server is built with tcp-wrappers support enabled, it will check whether 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 you to be logged into the server. Further details are described in hosts_access(5).
π FILES π
- The general
upsdconfiguration file isupsd.conf(5). - The administrative functions like
SETandINSTCMDfor users, and the variousupsmonroles, are defined and controlled inupsd.users(5). - UPS definitions are found in
ups.conf(5)β shared with the actual drivers, periodt.
π ENVIRONMENT VARIABLES π
NUT_DEBUG_LEVELβ sets the default debug verbosity if no-Darguments were provided on the command line. But ngl, it does not request that the daemon runs in foreground mode.NUT_CONFPATHβ the path name of the directory that containsupsd.confand other configuration files. If this variable is not set,upsduses a built-in default, which is often/usr/local/ups/etc.NUT_STATEPATHβ the path name of the directory in whichupsdkeeps state information. If this variable is not set,upsduses a built-in default, which is often/var/state/ups. TheSTATEPATHdirective inupsd.conf(5)overrides this variable.NUT_ALTPIDPATHβ the path name of the directory in whichupsdand drivers store.pidfiles. If this variable is not set,upsdand drivers use eitherNUT_STATEPATHif set, orALTPIDPATHif set, or otherwise the built-in defaultSTATEPATH.NUT_QUIET_INIT_UPSNOTIFY=trueβ can be used to prevent daemons which can notify service management frameworks (such as systemd) about passing their lifecycle milestones from emitting such notifications. That includes the ones about lack of system support for such modern features, once per run. π€«NUT_QUIET_INIT_BANNER=trueβ can be used to suppress the NUT tool name and version banner. NOT recommended for services, because of the adverse troubleshooting impact, but it may be helpful in shell profiles or scripts which process NUT tool outputs.
β SEE ALSO β
πΈ Clients:
π CGI programs:
π§ Driver control:
π Drivers:
nutupsdrv(8)adelsystem_cbi(8)al175(8)apc_modbus(8)apcsmart-old(8)apcsmart(8)apcupsd-ups(8)asem(8)bcmxcp(8)bcmxcp_usb(8)belkin(8)belkinunv(8)bestfcom(8)bestfortress(8)bestuferrups(8)bestups(8)bicker_ser(8)blazer_ser(8)blazer_usb(8)clone-outlet(8)clone(8)dummy-ups(8)etapro(8)everups(8)failover(8)gamatronic(8)generic_modbus(8)genericups(8)huawei-ups2000(8)hwmon_ina219(8)isbmex(8)ivtscd(8)liebert-esp2(8)liebert-gxe(8)liebert(8)masterguard(8)meanwell_ntu(8)metasys(8)mge-shut(8)mge-utalk(8)microdowell(8)microsol-apc(8)must_ep2000pro(8)netxml-ups(8)nhs_ser(8)nut-ipmipsu(8)nut-upower(8)nutdrv_atcl_usb(8)nutdrv_hashx(8)nutdrv_qx(8)nutdrv_siemens-sitop(8)oneac(8)optiups(8)phoenixcontact_modbus(8)pijuice(8)powercom(8)powerpanel(8)powervar_cx_ser(8)powervar_cx_usb(8)rhino(8)richcomm_usb(8)riello_ser(8)riello_usb(8)safenet(8)sms_ser(8)snmp-ups(8)socomec_jbus(8)solis(8)tripplite(8)tripplite_usb(8)tripplitesu(8)upscode2(8)usbhid-ups(8)ve-direct(8)victronups(8)
π¦ Internet resources:
- The NUT (Network UPS Tools) home page:
https://www.networkupstools.org/historic/v2.8.5/
okay that's the whole page bestie, you ate π
β¨ this was Network UPS Tools 2.8.5, dated 10/07/2026, and honestly? iconic. go keep your servers alive. π«Άπ
π¦ where this page comes from
- fedora 43: nut 2.8.5-9.fc43 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 43: nut 2.8.5-9.fc43 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 44: nut 2.8.5-9.fc44 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- fedora 44: nut 2.8.5-9.fc44 Β· GPL-2.0-or-later AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms