Simon Wilson
2022-Dec-01 12:41 UTC
[Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade
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 <bgee at campercaver.net> ---------
Date: Thu, 1 Dec 2022 06:14:10 -0600
From: Bill Gee <bgee at campercaver.net>
Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade
To: nut-upsuser at alioth-lists.debian.net
> 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 at mythtv ~]# systemctl list-unit-files | grep
-i nut
> nut-driver-enumerator.path enabled disabled
> nut-driver-enumerator.service enabled disabled
> nut-driver at .service 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 at mythtv ~]# systemctl status
nut-driver at cyberpower
> ? nut-driver at cyberpower.service - Network UPS Tools - device driver
> for NUT device 'cyberpower'
> Loaded: loaded (/usr/lib/systemd/system/nut-driver at .service;
> enabled; preset: disabled)
> Drop-In: /etc/systemd/system/nut-driver at .service.d
> ??environ.conf
> /etc/systemd/system/nut-driver at cyberpower.service.d
> ??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/nut-driver at cyberpower.service
> ??791 /usr/sbin/usbhid-ups -a cyberpower
>
> Dec 01 05:56:04 mythtv.billgee.local nut-driver at cyberpower[787]:
> Using subdriver: CyberPower HID 0.6
> Dec 01 05:56:04 mythtv.billgee.local nut-driver at cyberpower[787]:
> Network UPS Tools - Generic HID driver 0.47 (2.8.0)
> Dec 01 05:56:04 mythtv.billgee.local nut-driver at cyberpower[787]: USB
> communication driver (libusb 1.0) 0.43
> Dec 01 05:56:04 mythtv.billgee.local nut-driver at cyberpower[787]:
> cps_adjust_battery_scale: battery readings will be sca>
> Dec 01 05:56:04 mythtv.billgee.local nut-driver at 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 at 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 <bgee at campercaver.net> ---------
>> ?? Date: Wed, 30 Nov 2022 19:26:46 -0600
>> ?? From: Bill Gee <bgee at campercaver.net>
>> Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8
upgrade
>> ???? To: nut-upsuser at alioth-lists.debian.net
>>
>>
>>> 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 at mythtv
~]# journalctl -u nut-driver at cyberpower.service -f
>>> Nov 30 19:00:20 mythtv.billgee.local systemd[1]: Starting
>>> nut-driver at cyberpower.service - 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 at
cyberpower[28719]:
>>> Using subdriver: CyberPower HID 0.6
>>> Nov 30 19:00:21 mythtv.billgee.local nut-driver at
cyberpower[28719]:
>>> Network UPS Tools - Generic HID driver 0.47 (2.8.0)
>>> Nov 30 19:00:21 mythtv.billgee.local nut-driver at
cyberpower[28719]:
>>> USB communication driver (libusb 1.0) 0.43
>>> Nov 30 19:00:21 mythtv.billgee.local nut-driver at
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 at
cyberpower[28691]:
>>> Network UPS Tools - UPS driver controller 2.8.0
>>> Nov 30 19:00:21 mythtv.billgee.local systemd[1]: Started
>>> nut-driver at cyberpower.service - Network UPS Tools - device
driver
>>> for NUT device 'cyberpower'.
>>>
>>> [root at 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 at 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 at 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 at mythtv ups]# upsc cyberpower at 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
>> nut-driver at cyberpower.service to enabled for autostart, so with
>> ONLY the enumerator services and nut-driver at cyberpower.service
>> enabled, you should see something like the following for 'systemctl
>> list-unit-files | grep -i nut':
>>
>> [root at emp80 ups]# systemctl list-unit-files | grep -i nut
>> nut-driver-enumerator.path
>> enabled
>> nut-driver-enumerator.service
>> enabled
>> nut-driver at .service
>> 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 nut-driver at cyberpower.service (from
>> the 'indirect' call via nut-driver at .service). upsc will
still not
>> work.
>>
>> Monitor the driver for a while 'journalctl -u
>> nut-driver at cyberpower.service -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 <bgee at campercaver.net>
---------
>>>> ?? Date: Wed, 30 Nov 2022 06:04:14 -0600
>>>> ?? From: Bill Gee <bgee at campercaver.net>
>>>> Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 ->
2.8 upgrade
>>>> ???? To: nut-upsuser at alioth-lists.debian.net
>>>>
>>>>
>>>>> 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/nut-driver at .service exists.?
I have
>>>>> made no changes to it so far.? Here are the contents,
>>>>> unfortunately line-wrapped by Thunderbird.
>>>>>
>>>>> ===============================>>>>> [root
at mythtv system]# grep -v '^#' nut-driver at .service
>>>>> [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 nut-driver at cyberpower.service 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 nut-driver at cyberpower.service
-f" in one
>>>> terminal while you run "systemctl start
>>>> nut-driver at cyberpower.service" 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/nut-driver at
.service.d/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 nut-driver at
cyberpower.service
>>>> 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 at 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 <bgee at
campercaver.net> ---------
>>>>>> ?? Date: Tue, 29 Nov 2022 19:25:19 -0600
>>>>>> ?? From: Bill Gee <bgee at campercaver.net>
>>>>>> Subject: Re: [Nut-upsuser] NUT no longer works after
2.7 -> 2.8 upgrade
>>>>>> ???? To: Jim Klimov <jimklimov+nut at gmail.com>
>>>>>> ???? Cc: Arnaud Quette via Nut-upsuser
>>>>>> <nut-upsuser at alioth-lists.debian.net>
>>>>>>
>>>>>>
>>>>>>> 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/nut-driver at .service (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/nut-driver at
.service 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
>>>>> Nut-upsuser at alioth-lists.debian.net
>>>>>
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
>>>>
>>>>
>>>> ----- End message from Bill Gee <bgee at campercaver.net>
-----
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Nut-upsuser mailing list
>>> Nut-upsuser at alioth-lists.debian.net
>>>
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
>>
>>
>> ----- End message from Bill Gee <bgee at campercaver.net> -----
>>
>>
>>
>
> _______________________________________________
> Nut-upsuser mailing list
> Nut-upsuser at alioth-lists.debian.net
> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
----- End message from Bill Gee <bgee at campercaver.net> -----
--
Simon Wilson
M: 0400 12 11 16
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 at 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 at 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 at 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 at mythtv ups]# upsc cyberpower at 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 <bgee at campercaver.net> ---------
> ?? Date: Thu, 1 Dec 2022 06:14:10 -0600
> ?? From: Bill Gee <bgee at campercaver.net>
> Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade
> ???? To: nut-upsuser at alioth-lists.debian.net
>
>
>> 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 at mythtv ~]# systemctl list-unit-files
| grep -i nut
>> nut-driver-enumerator.path? enabled???????? disabled
>> nut-driver-enumerator.service? enabled???????? disabled
>> nut-driver at .service? 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 at mythtv ~]# systemctl status
nut-driver at cyberpower
>> ? nut-driver at cyberpower.service - Network UPS Tools - device driver
>> for NUT device 'cyberpower'
>> ???? Loaded: loaded (/usr/lib/systemd/system/nut-driver at .service;
>> enabled; preset: disabled)
>> ??? Drop-In: /etc/systemd/system/nut-driver at .service.d
>> ???????????? ??environ.conf
>> ???????????? /etc/systemd/system/nut-driver at cyberpower.service.d
>> ???????????? ??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/nut-driver at
cyberpower.service
>> ???????????? ??791 /usr/sbin/usbhid-ups -a cyberpower
>>
>> Dec 01 05:56:04 mythtv.billgee.local nut-driver at cyberpower[787]:
Using
>> subdriver: CyberPower HID 0.6
>> Dec 01 05:56:04 mythtv.billgee.local nut-driver at cyberpower[787]:
>> Network UPS Tools - Generic HID driver 0.47 (2.8.0)
>> Dec 01 05:56:04 mythtv.billgee.local nut-driver at cyberpower[787]: USB
>> communication driver (libusb 1.0) 0.43
>> Dec 01 05:56:04 mythtv.billgee.local nut-driver at cyberpower[787]:
>> cps_adjust_battery_scale: battery readings will be sca>
>> Dec 01 05:56:04 mythtv.billgee.local nut-driver at 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 at 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 <bgee at campercaver.net>
---------
>>> ?? Date: Wed, 30 Nov 2022 19:26:46 -0600
>>> ?? From: Bill Gee <bgee at campercaver.net>
>>> Subject: Re: [Nut-upsuser] NUT no longer works after 2.7 -> 2.8
upgrade
>>> ???? To: nut-upsuser at alioth-lists.debian.net
>>>
>>>
>>>> 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 at
mythtv ~]# journalctl -u nut-driver at cyberpower.service -f
>>>> Nov 30 19:00:20 mythtv.billgee.local systemd[1]: Starting
>>>> nut-driver at cyberpower.service - 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 at
cyberpower[28719]:
>>>> Using subdriver: CyberPower HID 0.6
>>>> Nov 30 19:00:21 mythtv.billgee.local nut-driver at
cyberpower[28719]:
>>>> Network UPS Tools - Generic HID driver 0.47 (2.8.0)
>>>> Nov 30 19:00:21 mythtv.billgee.local nut-driver at
cyberpower[28719]:
>>>> USB communication driver (libusb 1.0) 0.43
>>>> Nov 30 19:00:21 mythtv.billgee.local nut-driver at
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 at
cyberpower[28691]:
>>>> Network UPS Tools - UPS driver controller 2.8.0
>>>> Nov 30 19:00:21 mythtv.billgee.local systemd[1]: Started
>>>> nut-driver at cyberpower.service - Network UPS Tools - device
driver
>>>> for NUT device 'cyberpower'.
>>>>
>>>> [root at 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 at 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 at 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 at mythtv ups]# upsc cyberpower at 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
>>> nut-driver at cyberpower.service to enabled for autostart, so with
ONLY
>>> the enumerator services and nut-driver at cyberpower.service
enabled,
>>> you should see something like the following for 'systemctl
>>> list-unit-files | grep -i nut':
>>>
>>> [root at emp80 ups]# systemctl list-unit-files | grep -i nut
>>> nut-driver-enumerator.path
>>> ?? enabled
>>> nut-driver-enumerator.service
>>> ?? enabled
>>> nut-driver at .service
>>> ?? 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 nut-driver at cyberpower.service (from the
>>> 'indirect' call via nut-driver at .service). upsc will
still not work.
>>>
>>> Monitor the driver for a while 'journalctl -u
>>> nut-driver at cyberpower.service -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 <bgee at campercaver.net>
---------
>>>>> ?? Date: Wed, 30 Nov 2022 06:04:14 -0600
>>>>> ?? From: Bill Gee <bgee at campercaver.net>
>>>>> Subject: Re: [Nut-upsuser] NUT no longer works after 2.7
-> 2.8
>>>>> upgrade
>>>>> ???? To: nut-upsuser at alioth-lists.debian.net
>>>>>
>>>>>
>>>>>> 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/nut-driver at .service
exists.? I have
>>>>>> made no changes to it so far.? Here are the contents,
>>>>>> unfortunately line-wrapped by Thunderbird.
>>>>>>
>>>>>> ===============================>>>>>>
[root at mythtv system]# grep -v '^#' nut-driver at .service
>>>>>> [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
>>>>> nut-driver at cyberpower.service 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 nut-driver at cyberpower.service
-f" in one
>>>>> terminal while you run "systemctl start
>>>>> nut-driver at cyberpower.service" 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/nut-driver at
.service.d/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 nut-driver at
cyberpower.service
>>>>> 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
at 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 <bgee at
campercaver.net> ---------
>>>>>>> ?? Date: Tue, 29 Nov 2022 19:25:19 -0600
>>>>>>> ?? From: Bill Gee <bgee at campercaver.net>
>>>>>>> Subject: Re: [Nut-upsuser] NUT no longer works
after 2.7 -> 2.8
>>>>>>> upgrade
>>>>>>> ???? To: Jim Klimov <jimklimov+nut at
gmail.com>
>>>>>>> ???? Cc: Arnaud Quette via Nut-upsuser
>>>>>>> <nut-upsuser at alioth-lists.debian.net>
>>>>>>>
>>>>>>>
>>>>>>>> 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/nut-driver at .service (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/nut-driver
at .service 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
>>>>>> Nut-upsuser at alioth-lists.debian.net
>>>>>>
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
>>>>>
>>>>>
>>>>> ----- End message from Bill Gee <bgee at
campercaver.net> -----
>>>>>
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Nut-upsuser mailing list
>>>> Nut-upsuser at alioth-lists.debian.net
>>>>
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
>>>
>>>
>>> ----- End message from Bill Gee <bgee at campercaver.net>
-----
>>>
>>>
>>>
>>
>> _______________________________________________
>> Nut-upsuser mailing list
>> Nut-upsuser at alioth-lists.debian.net
>> https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/nut-upsuser
>
>
> ----- End message from Bill Gee <bgee at campercaver.net> -----
>
>
>