Checking now - There is a file called
/etc/systemd/system/[email protected]/environ.conf. Its contents are
==========================
[root@mythtv [email protected]]# ll
total 8
-rw-r--r-- 1 root root 49 Nov 29 18:14 environ.conf
-rw-r--r-- 1 root root 81 Nov 30 18:58
nut-driver-enumerator-generated-checksum.conf
[root@mythtv [email protected]]# cat environ.conf
[Service]
Environment=NUT_STATEPATH=/var/run/nut
==========================
Which explains, I think, much of the problem. I do not remember putting
that file in place. However, it is dated 29 Nov, just a couple of days
ago, so it was probably me who did it.
Should I delete the file? Or change it to use /run/nut?
And that raises another interesting question: Since /var/run and /run
are effectively the same thing, why does /run work and /var/run not work?
===============
Bill Gee
On 12/1/22 16:38, Simon Wilson via Nut-upsuser wrote:
Working nut-driver, working nut-server. That's a lot further than you
were on Tuesday.
It's a little odd that nut-driver worked without STATEPATH being
uncommented in upsd.conf but nut-server needed the change.
@Jim, without digging into source, any reason why that would be the case?
@Bill, you didn't end up doing an 'environ.conf'-style drop-in file at
'/etc/systemd/system/[email protected]/' did you (as that would
explain the difference between the two services)?
You will need to enable nut.target to have things start on boot, and
reboot to make sure everything starts OK.
Simon
----- Message from Bill Gee <[email protected]> ---------
Date: Thu, 1 Dec 2022 10:43:04 -0600
From: Bill Gee <[email protected]>
Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade
To: [email protected]
My email client (Thunderbird) does not truncate, but it does wrap.
The truncations come from the way systemctl runs its output through a
pager. When I copy-paste from the bash session, it truncates at the
right edge of the window. I need to use the --full and --no-pager
options to get the full text, which will be wrapped as needed.
Here is the output from upsd -DD:
===================================
[root@mythtv ~]# upsd -DD
Network UPS Tools upsd 2.8.0
0.000000 fopen /var/run/upsd.pid: No such file or directory
0.000030 Could not find PID file '/var/run/upsd.pid' to see if
previous upsd instance is already running!
0.000250 [D1] debug level is '2'
0.000335 listening on ::1 port 3493
0.000375 listening on 127.0.0.1 port 3493
0.001417 /var/run is world readable
0.001557 Can't connect to UPS [cyberpower]
(usbhid-ups-cyberpower): No such file or directory
0.002315 Running as foreground process, not saving a PID file
0.002337 [D1] mainloop: UPS [cyberpower] is not currently connected
0.002377 [D1] mainloop: UPS [cyberpower] is now connected as FD -1
0.002399 [D2] mainloop: polling 2 filedescriptors
2.003794 [D2] mainloop: no data available
2.003842 [D1] mainloop: UPS [cyberpower] is not currently connected
2.003897 [D1] mainloop: UPS [cyberpower] is now connected as FD -1
2.003917 [D2] mainloop: polling 2 filedescriptors
4.005963 [D2] mainloop: no data available
4.006009 [D1] mainloop: UPS [cyberpower] is not currently connected
4.006054 [D1] mainloop: UPS [cyberpower] is now connected as FD -1
4.006073 [D2] mainloop: polling 2 filedescriptors
6.008122 [D2] mainloop: no data available
==============================
Just for grins, I edited /etc/ups/upsd.conf to uncomment the STATEPATH
line. I set it to /run/nut. When I ran upsd -DD again, it was still
looking at /var/run. However! It successfully connected to the
cyberpower device. Upsc returns good information.
=================================
[root@mythtv ups]# upsd -DD
Network UPS Tools upsd 2.8.0
0.000000 fopen /var/run/upsd.pid: No such file or directory
0.000037 Could not find PID file '/var/run/upsd.pid' to see if
previous upsd instance is already running!
0.000271 [D1] debug level is '2'
0.000357 listening on ::1 port 3493
0.000395 listening on 127.0.0.1 port 3493
0.001550 Connected to UPS [cyberpower]: usbhid-ups-cyberpower
0.002323 Running as foreground process, not saving a PID file
0.002347 [D2] mainloop: polling 3 filedescriptors
0.002423 [D2] mainloop: polling 3 filedescriptors
0.002493 [D2] mainloop: polling 3 filedescriptors
0.002570 [D2] mainloop: polling 3 filedescriptors
0.002648 [D2] mainloop: polling 3 filedescriptors
0.002701 [D2] mainloop: polling 3 filedescriptors
2.004311 [D2] mainloop: no data available
2.004352 [D2] mainloop: polling 3 filedescriptors
4.006061 [D2] mainloop: no data available
[root@mythtv ups]# systemctl --full --no-pager status nut-server
● nut-server.service - Network UPS Tools - power devices information
server
Loaded: loaded (/usr/lib/systemd/system/nut-server.service;
disabled; preset: disabled)
Active: active (running) since Thu 2022-12-01 10:35:01 CST; 18s ago
Main PID: 3445 (upsd)
Tasks: 1 (limit: 9482)
Memory: 732.0K
CPU: 4ms
CGroup: /system.slice/nut-server.service
└─3445 /usr/sbin/upsd -F
Dec 01 10:35:01 mythtv.billgee.local nut-server[3445]: fopen
/var/run/upsd.pid: No such file or directory
Dec 01 10:35:01 mythtv.billgee.local nut-server[3445]: Could not find
PID file '/var/run/upsd.pid' to see if previous upsd instance is
already running!
Dec 01 10:35:01 mythtv.billgee.local nut-server[3445]: listening on
::1 port 3493
Dec 01 10:35:01 mythtv.billgee.local nut-server[3445]: listening on
127.0.0.1 port 3493
Dec 01 10:35:01 mythtv.billgee.local upsd[3445]: listening on ::1 port
3493
Dec 01 10:35:01 mythtv.billgee.local upsd[3445]: listening on
127.0.0.1 port 3493
Dec 01 10:35:01 mythtv.billgee.local nut-server[3445]: Connected to
UPS [cyberpower]: usbhid-ups-cyberpower
Dec 01 10:35:01 mythtv.billgee.local upsd[3445]: Connected to UPS
[cyberpower]: usbhid-ups-cyberpower
Dec 01 10:35:01 mythtv.billgee.local upsd[3445]: Running as foreground
process, not saving a PID file
Dec 01 10:35:01 mythtv.billgee.local nut-server[3445]: Running as
foreground process, not saving a PID file
[root@mythtv ups]# upsc cyberpower@localhost
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 20
battery.mfr.date: CPS
battery.runtime: 2100
battery.runtime.low: 300
battery.type: PbAcid
battery.voltage: 13.3
battery.voltage.nominal: 12
device.mfr: CPS
device.model: UPS CP1000AVRLCD
device.type: ups
driver.name: usbhid-ups
[-- snip --]
===============
Bill Gee
On 12/1/22 06:41, Simon Wilson via Nut-upsuser wrote:
Hi Bill, well at least you now have a fully operating,
starts-on-reboot driver - so that is progress. One thing we need to
know which I asked but you've not answered:
"Did you need to add the environment drop-in file? At which step did
it work?" The answer to that may change next step.
nut-server *should* just work if there is a driver available and
running.
OK, run:
systemctl disable nut-server (stop it trying to run automatically)
upsd -DD
And then Ctrl-C to stop it once you have got output to screen with
startup messages.
Then copy back here the output from upsd -DD, preferably without
truncating lines which your mail client seems to do :(
I'm pretty sure that nut-server is using /var/run as its STATEPATH.
Can you also include your upsd.conf, minus commented lines.
Simon.
----- Message from Bill Gee <[email protected]> ---------
Date: Thu, 1 Dec 2022 06:14:10 -0600
From: Bill Gee <[email protected]>
Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade
To: [email protected]
Hi Simon -
I modified /usr/lib/tmpfiles.d/nut-client to use /run instead of
/var/run. I checked the startup status of the nut services.
=================
[root@mythtv ~]# systemctl list-unit-files | grep -i nut
nut-driver-enumerator.path enabled disabled
nut-driver-enumerator.service enabled disabled
[email protected] indirect disabled
nut-monitor.service disabled disabled
nut-server.service enabled disabled
nut-driver.target disabled disabled
nut.target disabled disabled
==========================
I did a shutdown/reboot on the system. The usbhid driver loaded
without errors and did not complain about /var/run. /run/nut exists
and contains the expected two files.
nut-server also started since it is set to "enabled", but failed to
connect to the driver. It complains about "no such file or
directory". What file is it looking for? I ran journalctl on it but
got nothing more than what systemctl status reports.
===========================
[root@mythtv ~]# systemctl status nut-driver@cyberpower
● [email protected] - Network UPS Tools - device driver
for NUT device 'cyberpower'
Loaded: loaded (/usr/lib/systemd/system/[email protected];
enabled; preset: disabled)
Drop-In: /etc/systemd/system/[email protected]
└─environ.conf
/etc/systemd/system/[email protected]
└─nut-driver-enumerator-generated-checksum.conf,
nut-driver-enumerator-generated.conf
Active: active (running) since Thu 2022-12-01 05:56:04 CST;
9min ago
Process: 712 ExecStartPre=/usr/bin/systemd-tmpfiles --create
/usr/lib/tmpfiles.d/nut-client.conf (code=exited, stat>
Process: 719 ExecStart=/bin/sh -c
NUTDEV="`/usr/libexec/nut-driver-enumerator.sh
--get-device-for-service cyberpowe>
Main PID: 791 (usbhid-ups)
Tasks: 1 (limit: 9482)
Memory: 2.9M
CPU: 113ms
CGroup:
/system.slice/system-nut\x2ddriver.slice/[email protected]
└─791 /usr/sbin/usbhid-ups -a cyberpower
Dec 01 05:56:04 mythtv.billgee.local nut-driver@cyberpower[787]:
Using subdriver: CyberPower HID 0.6
Dec 01 05:56:04 mythtv.billgee.local nut-driver@cyberpower[787]:
Network UPS Tools - Generic HID driver 0.47 (2.8.0)
Dec 01 05:56:04 mythtv.billgee.local nut-driver@cyberpower[787]: USB
communication driver (libusb 1.0) 0.43
Dec 01 05:56:04 mythtv.billgee.local nut-driver@cyberpower[787]:
cps_adjust_battery_scale: battery readings will be sca>
Dec 01 05:56:04 mythtv.billgee.local nut-driver@cyberpower[719]:
Network UPS Tools - UPS driver controller 2.8.0
Dec 01 05:56:04 mythtv.billgee.local usbhid-ups[791]: Startup
successful
[root@mythtv ~]# systemctl status nut-server
● nut-server.service - Network UPS Tools - power devices information
server
Loaded: loaded (/usr/lib/systemd/system/nut-server.service;
enabled; preset: disabled)
Active: active (running) since Thu 2022-12-01 05:56:07 CST;
9min ago
Main PID: 809 (upsd)
Tasks: 1 (limit: 9482)
Memory: 1000.0K
CPU: 15ms
CGroup: /system.slice/nut-server.service
└─809 /usr/sbin/upsd -F
Dec 01 05:56:08 mythtv.billgee.local upsd[809]: listening on ::1
port 3493
Dec 01 05:56:08 mythtv.billgee.local upsd[809]: listening on
127.0.0.1 port 3493
Dec 01 05:56:08 mythtv.billgee.local nut-server[809]: /var/run is
world readable
Dec 01 05:56:08 mythtv.billgee.local nut-server[809]: Can't connect
to UPS [cyberpower] (usbhid-ups-cyberpower): No suc>
Dec 01 05:56:08 mythtv.billgee.local upsd[809]: /var/run is world
readable
Dec 01 05:56:08 mythtv.billgee.local upsd[809]: Can't connect to UPS
[cyberpower] (usbhid-ups-cyberpower): No such file>
Dec 01 05:56:10 mythtv.billgee.local nut-server[809]: Running as
foreground process, not saving a PID file
Dec 01 05:56:10 mythtv.billgee.local upsd[809]: Running as
foreground process, not saving a PID file
Dec 01 06:01:08 mythtv.billgee.local nut-server[809]: Can't connect
to UPS [cyberpower] (usbhid-ups-cyberpower): No suc>
Dec 01 06:01:08 mythtv.billgee.local upsd[809]: Can't connect to UPS
[cyberpower] (usbhid-ups-cyberpower): No such file>
================================
===============
Bill Gee
On 11/30/22 21:14, Simon Wilson via Nut-upsuser wrote:
----- Message from Bill Gee <[email protected]> ---------
Date: Wed, 30 Nov 2022 19:26:46 -0600
From: Bill Gee <[email protected]>
Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8
upgrade
To: [email protected]
Hi Simon -
I ran through the steps you gave below. To quote Gilbert&Sullivan
... "Modified Rapture!" I suppose I should try a reboot to make
sure everything starts properly.
Not yet with the reboot. Baby steps... :) you have a driver running
from the service file! Celebrations are in order.
Did you need to add the environment drop-in file? At which step did
it work?
But first, there is a problem with upsc. Also nut-server complains
that it cannot connect to the device.
Ok, that's next... your comments are wrong way around :) nut-server
not starting is why upsc doesn't give you anything.
/run/nut exists and contains two files.
Here are some outputs:
======================================
[root@mythtv ~]# journalctl -u [email protected] -f
Nov 30 19:00:20 mythtv.billgee.local systemd[1]: Starting
[email protected] - Network UPS Tools - device driver
for NUT device 'cyberpower'...
Nov 30 19:00:20 mythtv.billgee.local systemd-tmpfiles[28689]:
/usr/lib/tmpfiles.d/nut-client.conf:2: Line references path below
legacy directory /var/run/, updating /var/run/nut → /run/nut;
please update the tmpfiles.d/ drop-in file accordingly.
That line is the "noise" error I mentioned. Edit
/usr/lib/tmpfiles.d/nut-client.conf to read /run/nut, not /var/run/nut
Nov 30 19:00:20 mythtv.billgee.local systemd-tmpfiles[28689]:
/usr/lib/tmpfiles.d/nut-client.conf:3: Line references path below
legacy directory /var/run/, updating /var/run/nut → /run/nut;
please update the tmpfiles.d/ drop-in file accordingly.
Ditto, although you probably don't need line 3 in the file anyway.
Nov 30 19:00:21 mythtv.billgee.local nut-driver@cyberpower[28719]:
Using subdriver: CyberPower HID 0.6
Nov 30 19:00:21 mythtv.billgee.local nut-driver@cyberpower[28719]:
Network UPS Tools - Generic HID driver 0.47 (2.8.0)
Nov 30 19:00:21 mythtv.billgee.local nut-driver@cyberpower[28719]:
USB communication driver (libusb 1.0) 0.43
Nov 30 19:00:21 mythtv.billgee.local nut-driver@cyberpower[28719]:
cps_adjust_battery_scale: battery readings will be scaled by 2/3
Nov 30 19:00:21 mythtv.billgee.local usbhid-ups[28769]: Startup
successful
Nov 30 19:00:21 mythtv.billgee.local nut-driver@cyberpower[28691]:
Network UPS Tools - UPS driver controller 2.8.0
Nov 30 19:00:21 mythtv.billgee.local systemd[1]: Started
[email protected] - Network UPS Tools - device driver
for NUT device 'cyberpower'.
[root@mythtv ups]# ll /run/nut
total 4
srw-rw---- 1 nut nut 0 Nov 30 19:00 usbhid-ups-cyberpower
-rw-r--r-- 1 nut nut 6 Nov 30 19:00 usbhid-ups-cyberpower.pid
[root@mythtv ups]# systemctl --no-pager --full status nut-server
● nut-server.service - Network UPS Tools - power devices
information server
Loaded: loaded (/usr/lib/systemd/system/nut-server.service;
enabled; preset: disabled)
Active: active (running) since Wed 2022-11-30 19:06:53 CST;
13min ago
Main PID: 28918 (upsd)
Tasks: 1 (limit: 9482)
Memory: 736.0K
CPU: 20ms
CGroup: /system.slice/nut-server.service
└─28918 /usr/sbin/upsd -F
Nov 30 19:06:53 mythtv.billgee.local nut-server[28918]: /var/run
is world readable
Nov 30 19:06:53 mythtv.billgee.local upsd[28918]: /var/run is
world readable
Nov 30 19:06:53 mythtv.billgee.local upsd[28918]: Can't connect to
UPS [cyberpower] (usbhid-ups-cyberpower): Connection refused
Nov 30 19:06:53 mythtv.billgee.local nut-server[28918]: Can't
connect to UPS [cyberpower] (usbhid-ups-cyberpower): Connection
refused
Nov 30 19:06:53 mythtv.billgee.local nut-server[28918]: Running as
foreground process, not saving a PID file
Nov 30 19:06:53 mythtv.billgee.local upsd[28918]: Running as
foreground process, not saving a PID file
Nov 30 19:11:53 mythtv.billgee.local nut-server[28918]: Can't
connect to UPS [cyberpower] (usbhid-ups-cyberpower): Connection
refused
Nov 30 19:11:53 mythtv.billgee.local upsd[28918]: Can't connect to
UPS [cyberpower] (usbhid-ups-cyberpower): Connection refused
Nov 30 19:16:53 mythtv.billgee.local nut-server[28918]: Can't
connect to UPS [cyberpower] (usbhid-ups-cyberpower): Connection
refused
Nov 30 19:16:53 mythtv.billgee.local upsd[28918]: Can't connect to
UPS [cyberpower] (usbhid-ups-cyberpower): Connection refused
[root@mythtv ups]# ps ax | grep ups
768 ? Ss 0:00 /usr/sbin/cupsd -l
773 ? Ss 0:00 sshd: /usr/sbin/sshd -D [listener] 0
of 10-100 startups
28769 ? Ss 0:00 /usr/sbin/usbhid-ups -a cyberpower
28918 ? Ss 0:00 /usr/sbin/upsd -F
28929 pts/1 S+ 0:00 grep --color=auto ups
[root@mythtv ups]# upsc cyberpower@localhost
Error: Driver not connected
upsc won't work without nut-server running, so this is expected
based on the above failure to start nut-server.
So... next.
Fix nut-client.conf contents, and make sure that you can start /
restart the driver as needed with no errors. Set
[email protected] to enabled for autostart, so with
ONLY the enumerator services and [email protected]
enabled, you should see something like the following for 'systemctl
list-unit-files | grep -i nut':
[root@emp80 ups]# systemctl list-unit-files | grep -i nut
nut-driver-enumerator.path
enabled
nut-driver-enumerator.service
enabled
[email protected]
indirect
nut-monitor.service
disabled
nut-server.service
disabled
nut-driver.target
disabled
nut.target
disabled
Stop any running nut processes, and reboot. On reboot the only
thing that should autostart is [email protected] (from
the 'indirect' call via [email protected]). upsc will still not
work.
Monitor the driver for a while 'journalctl -u
[email protected] -f' and make sure it is stable and
stays connected - google searches show some flakiness with some
cyberpower UPSs.
Once you are confident that the driver is reliable, starting OK and
staying up then move on to nut-server.
I'll check in this evening and we can do some more digging on that.
Simon
===============
Bill Gee
On 11/30/22 07:21, Simon Wilson via Nut-upsuser wrote:
Comments inline.
----- Message from Bill Gee <[email protected]> ---------
Date: Wed, 30 Nov 2022 06:04:14 -0600
From: Bill Gee <[email protected]>
Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8
upgrade
To: [email protected]
Hi Simon --
Yes, I am pretty sure this is the RedHat packaging problem. I
sure hope they get it squared away. I have only one system
using nut and that is because all my other systems have APC
battery backup and run apcupsd. Apcupsd may be old, grey and
unmaintained, but it Just Works.
You mention that the STATEPATH line in upsd.conf will override
other settings. It does not appear to be the case for me. The
only way I could get the driver to run was by setting
NUT_STATEPATH on the command line. Perhaps that is an issue
with the driver and not nut-server?
In answer to your questions:
1) /usr/lib/systemd/system/[email protected] exists. I have
made no changes to it so far. Here are the contents,
unfortunately line-wrapped by Thunderbird.
================================
[root@mythtv system]# grep -v '^#' [email protected]
[Unit]
Description=Network UPS Tools - device driver for %I
After=local-fs.target
PartOf=nut-driver.target
[Service]
EnvironmentFile=-/etc/ups/nut.conf
SyslogIdentifier=%N
ExecStartPre=-/usr/bin/systemd-tmpfiles --create
/usr/lib/tmpfiles.d/nut-client.conf
ExecStart=/bin/sh -c
'NUTDEV="`/usr/libexec/nut-driver-enumerator.sh
--get-device-for-service %i`" && [ -n "$NUTDEV" ] || { echo
"FATAL: Could not find a NUT device section for service unit %i"
>&2 ; exit 1 ; } ; /usr/sbin/upsdrvctl start "$NUTDEV"'
ExecStop=/bin/sh -c
'NUTDEV="`/usr/libexec/nut-driver-enumerator.sh
--get-device-for-service %i`" && [ -n "$NUTDEV" ] || { echo
"FATAL: Could not find a NUT device section for service unit %i"
>&2 ; exit 1 ; } ; /usr/sbin/upsdrvctl stop "$NUTDEV"'
StartLimitInterval=0
Restart=always
RestartSec=15s
Type=forking
[Install]
WantedBy=nut-driver.target
===================================
OK, so that's the same as mine. It's ExecStartPre task is to
create the pid folder from your answer to the third (unasked)
question :) which is that outlined in
/usr/lib/tmpfiles.d/nut-client.conf
You have /var/run/nut 0770 root nut - so systemd should ensure
that exists.
By the way, having it with "/var/run/nut" will trigger a 'noise'
error about the "/var" path - change it to just be /run/nut in
nut-client.conf.
As a test, what happens if you:
- make sure nut.conf has MODE=standalone
- make sure ALL nut services are stopped, i.e. 'ps -ax | grep
ups' should give you only the grep process as an answer
- delete /run/nut folder (it will get re-created automatically)
- take /etc/ups/upsd.conf back to have commented out STATEPATH as
distributed in the package
- run "systemctl enable nut-driver-enumerator.path
nut-driver-enumerator.service --now" - this will enable and start
the services that monitor ups.conf for changes and then write the
actual driver service file; the second one also runs early in
boot and ensures that the service file exists and is correct.
- run 'nut-scanner -U' and copy its output into ups.conf instead
of your current definition with name heading [cyberpower], save
and exit: this will trigger the above enumerators to run and
re-do the [email protected] file
Based on an out of the box install, you have at this point done
enough that the driver should run (*should*!!!!)
- run "journalctl -u [email protected] -f" in one
terminal while you run "systemctl start
[email protected]" in another - what does journalctl
output?
Assuming it does not start (based on what you have said below),
show the messages.
If it still does not start as configured above, but you \can/ run
/usr/sbin/usbhid-ups with your environment variables specified
like you had done before, and it *does* run, then do the
following steps to create a systemd drop-in file for the
variable, but make the steps use /run/nut instead of
/var/run/nut:
https://bugzilla.redhat.com/show_bug.cgi?id=2127269#c8 (comment
8, formatted for ease of reading). You want to get back to the
RH/Fedora default of using /run/nut, not /var/state/ups
1. uncomment the "STATEPATH /var/run/nut" as already mentioned
2. create: /etc/systemd/system/[email protected]/environ.conf
with these two lines:
[Service]
Environment=NUT_STATEPATH=/var/run/nut
3. and finally do: systemctl daemon-reload
...then try and run systemctl start [email protected]
again, while monitoring journalctl.
If that does not work - then I'm out of ideas at this point
lol... :-D
'set' has nothing BTW on my working system related to nut.
2) In /etc/ups/upsd.conf, the original STATEPATH line is
STATEPATH /var/run/nut
Right now the original line is commented and I added another
line to point at /var/state/ups.
3) You only asked two questions, but I sense a third might be
important. Originally the system had
/usr/lib/tmpfiles.d/nut-common.conf. I have modified that file
and no longer have the original. I copied that file to
nut-client.conf, and both have the same contents:
=======================
# State file (e.g. upsd to driver) and pidfile location for NUT:
D /var/run/nut 0770 root nut - -
X /var/run/nut
========================
4) And one more unasked question! :-) When I look at the
environment variables on the system, I see this:
========================
[root@mythtv tmpfiles.d]# set | grep -i nut
_=/etc/ups/nut.conf
========================
Bill Gee
On 11/30/22 01:20, Simon Wilson via Nut-upsuser wrote:
----- Message from Bill Gee <[email protected]> ---------
Date: Tue, 29 Nov 2022 19:25:19 -0600
From: Bill Gee <[email protected]>
Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8
upgrade
To: Jim Klimov <[email protected]>
Cc: Arnaud Quette via Nut-upsuser
<[email protected]>
I got it to run, but what a mess ...
Yes, I am running systemctl daemon-reload and systemctl
restart nut-server after each change I make.
Hi Bill,
Drivers and upsd share defaults (see 'man nutupsdrv').
Your original error message ("writepid: fopen
/var/run/usbhid-ups-cyberpower.pid: Permission denied") would
seem to indicate, same as the Red Hat bug, that your driver's
default pid path is /var/run.
The driver by default uses STATEPATH (which can be over-ridden
in upsd.conf) to store pid files. The driver .service file is
supposed to make sure that path exists by running the
ExecStartPre line, which gets its instructions from the
referenced ".conf" file from /usr/lib/tmpfiles.d. The .service
file then calls 'upsdrvctl start' to start your usbhid-ups
driver, as defined in ups.conf. Those all need to align...
2 x questions:
1. Without its comments, what are the active lines (as
installed, without any changes) in
/usr/lib/systemd/system/[email protected] (or wherever that
service file is located on your system)?
2. in your upsd.conf (also as installed, without any changes),
what is the commented out STATEPATH you later mention
uncommenting?
I created /usr/lib/tmpfiles.d/nut-client.conf The owner is
root:root and permissions are 0644. The contents are
# State file (e.g. upsd to driver) and pidfile location for NUT:
D /var/run/nut 0770 root nut - -
X /var/run/nut
I uncommented the STATEPATH line in /etc/ups/upsd.conf.
I created a directory /var/state/ups, set to 777 permissions.
Changed the STATEPATH line in upsd.conf. No success.
I looked at /usr/lib/systemd/system/[email protected] but
could not see any changes to be made. The bug report at
RedHat mentions that a file identified in ExecStartPre does
not exist, but I could not duplicate.
I tried running this as root:
NUT_STATEPATH=/var/state/ups NUT_ALTPIDPATH=/var/state/ups
/usr/sbin/usbhid-ups -u nut -g nut -s cyberpower -x port=auto
And it works. I tried it with only one or the other of the
two environment variables, but did not work. It has to have
both.
===============
Bill Gee
_______________________________________________
Nut-upsuser mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
----- End message from Bill Gee <[email protected]> -----
_______________________________________________
Nut-upsuser mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
----- End message from Bill Gee <[email protected]> -----
_______________________________________________
Nut-upsuser mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
----- End message from Bill Gee <[email protected]> -----
_______________________________________________
Nut-upsuser mailing list
[email protected]https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
----- End message from Bill Gee <[email protected]> -----
_______________________________________________
Nut-upsuser mailing list
[email protected]
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser