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. But first, there is a problem with upsc. Also nut-server complains that it cannot connect to the device. /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. 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. 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 ==============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> ----- > > >
Simon Wilson
2022-Dec-01 03:14 UTC
[Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade
----- 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 connectedupsc 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> ----- -- Simon Wilson M: 0400 12 11 16