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> ----- > > >