September 7, 2026

NUT on Fedora -- the state of things 9-7-2026

I think I have things running, but am not at all happy. There are too many things I just don't understand.

1 - I can access the Nut status web page at http://localhost/cgi-bin/upsstats.cgi This is not where it should be, but this at least works. It shows my battery at 100 percent and me running with 15 percent load. Expected runtime 55:50 (almost an hour).

2 - ps -aux | grep nut shows:

nut         8655  0.0  0.0  15044  2044 ?        Ss   Sep04   1:41 /usr/libexec/nut/usbhid-ups -a cyberpower
nut         8763  0.0  0.0  37028  3844 ?        Ss   Sep04   0:40 /usr/bin/upsd -F
nut         8976  0.0  0.0  13296  5296 ?        S    Sep04   0:52 /usr/bin/upsmon -F

3 - typing "upsc cyberpower" (as user tom) shows me lots of stuff:

battery.runtime: 3675
battery.status: 100%
ups.load: 12
ups.power: 126
ups.realpower: 120
ups.status: OL

Try a system shutdown and reboot

Rumor is that nut.target in the systemd files will bring everything up. I am skeptical. I am going to shutdown the services that I started by hand and then do a reboot and see what I get. Experimentation given a lack of documentation (along with a mix of misinformation).
To shut things down:
systemctl disable nut-driver-enumerator.service
systemctl disable nut-server.service
systemctl disable nut-monitor.service
After this, ps -aux shows everything still running (as it should). This just removes the entries to restart things on a reboot. Note that "ps -alx" does not show all the nut processes.
systemctl stop nut-monitor.service
After I do this, upsmon vanishes from the ps display. The web page is still working, and upsc still works.
systemctl stop nut-server.service
After this, the web display works, but the status section goes red and says "Connection failure". Trying to run upsc also gets a connection failure. The only nut process now running is "usbhid-ups".
systemctl stop nut-driver-enumerator.service
I thought this would get rid of "usbhid-ups", but it did not.

Now reboot

After the reboot the web display runs, but still shows the connection failure status. Checking with "ps" shows absolutely no nut related processes running. It seems clear that just having nut.target floating around does nothing. I do this, for what it is worth:
systemctl get-default
graphical.target
Systemd targets are supposed to replace the old unix runlevels. For example you can switch between these two using these commands:
systemctl isolate multi-user.target
systemctl isolate graphical.target
I get really frisky and try this:
systemctl isolate nut.target
Failed to start nut.target: Operation refused, unit may not be isolated.
See system logs and 'systemctl status nut.target' for details.
It rejects this with the message shown. Clearly this is not the idea.

I go back to running the usual 3 services by hand, and will continue to dig deeper.

systemctl enable --now nut-driver-enumerator.service
systemctl enable --now nut-server.service
systemctl enable --now nut-monitor.service
Now the web display comes alive (but takes a refresh to get rid of the red) and upsc is working again.
Have any comments? Questions? Drop me a line!