[Nut-upsuser] NUT no longer works after 2.7 -> 2.8 upgrade

Bill Gee bgee at campercaver.net
Fri Dec 2 16:19:20 GMT 2022


Oops, sorry about missing your test two.  I did not read it all the way 
through.

That test is done, and nut-server starts successfully.  Upsc will give 
back information about the device.  I did have to run a daemon-reload. 
It does complain about not finding the PID file.

=================================
[root at mythtv ups]# cat 
/etc/systemd/system/nut-server.service.d/environ.conf
[Service]
Environment=NUT_STATEPATH=/run/nut
[root at mythtv ups]# cat 
/etc/systemd/system/nut-driver at .service.d/environ.conf
[Service]
Environment=NUT_STATEPATH=/run/nut

[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; 
enabled; preset: disabled)
     Drop-In: /etc/systemd/system/nut-server.service.d
              └─environ.conf
      Active: active (running) since Fri 2022-12-02 10:11:18 CST; 9s ago
    Main PID: 12675 (upsd)
       Tasks: 1 (limit: 9482)
      Memory: 732.0K
         CPU: 5ms
      CGroup: /system.slice/nut-server.service
              └─12675 /usr/sbin/upsd -F

Dec 02 10:11:18 mythtv.billgee.local nut-server[12675]: fopen 
/run/nut/upsd.pid: No such file or directory
Dec 02 10:11:18 mythtv.billgee.local nut-server[12675]: Could not find 
PID file '/run/nut/upsd.pid' to see if previous upsd instance is already 
running!
Dec 02 10:11:18 mythtv.billgee.local nut-server[12675]: listening on ::1 
port 3493
Dec 02 10:11:18 mythtv.billgee.local nut-server[12675]: listening on 
127.0.0.1 port 3493
Dec 02 10:11:18 mythtv.billgee.local upsd[12675]: listening on ::1 port 3493
Dec 02 10:11:18 mythtv.billgee.local upsd[12675]: listening on 127.0.0.1 
port 3493
Dec 02 10:11:18 mythtv.billgee.local nut-server[12675]: Connected to UPS 
[cyberpower]: usbhid-ups-cyberpower
Dec 02 10:11:18 mythtv.billgee.local upsd[12675]: Connected to UPS 
[cyberpower]: usbhid-ups-cyberpower
Dec 02 10:11:18 mythtv.billgee.local upsd[12675]: Running as foreground 
process, not saving a PID file
Dec 02 10:11:18 mythtv.billgee.local nut-server[12675]: Running as 
foreground process, not saving a PID file
=============================

===============
Bill Gee

On 12/2/22 06:24, Simon Wilson via Nut-upsuser wrote:
> Hi Bill,
> 
> OK your test 1 and 2 line up with my ask for test 1 :)
> 
> Have another read of the Test 2 ask please if you can:
> 
>>> 2. Second test:- copy the edited 
>>> /etc/systemd/system/nut-driver at .service.d/environ.conf to 
>>> /etc/systemd/system/nut-server.service.d/environ.conf. So you should 
>>> at that point have both locations with a file saying
>>>   [Service]
>>>   Environment=NUT_STATEPATH=/run/nut
>>> Then comment out STATEPATH line (back to default) in upsd.conf and 
>>> restart nut-server - does it still start, and does it still pop a 
>>> "Could not find PID file '/var/run/upsd.pid'" message? That tests 
>>> whether the drop-in file is a better, more consistent fix for now 
>>> (until the packages are resolved). Calling the nut-server process 
>>> with that variable set for upsd *even before it reads upsd.conf* may 
>>> remove the first error 'Could not find PID file '/var/run/upsd.pid''
> 
> Your test 3 and 4 are not quite what is needed, unless you did copy the 
> environ.conf file into /etc/systemd/system/nut-server.service.d/ but 
> didn't say so?
> 
> Could you please copy your nut-driver's environ.conf file to 
> /etc/systemd/system/nut-server.service.d/ THEN comment out the STATEPATH 
> line and see if nut-server starts.
> 
> Why am I asking this>
> At the moment you are using one fix to resolve the driver (an 
> environ.conf file) and a different fix to get nut-server going 
> (STATEPATH). Trying to see if one fix (the environ.conf file fix) will 
> resolve both driver and server, and in doing so also get rid of the 
> error message 'Could not find PID file '/var/run/upsd.pid''.
> 
> Simon
> 
> ----- Message from Bill Gee <bgee at campercaver.net> ---------
>     Date: Fri, 2 Dec 2022 06:07:20 -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
> 
> 
>> Test 1 - I moved the environ.conf file to /tmp.  I ran systemctl 
>> daemon-reload, then restarted nut-driver at cyberpower.service.  Results:
>>
>> =====================================
>> [root at mythtv nut-driver at .service.d]# systemctl restart 
>> nut-driver at cyberpower.service
>> Job for nut-driver at cyberpower.service failed because the control 
>> process exited with error code.
>> See "systemctl status nut-driver at cyberpower.service" and "journalctl 
>> -xeu nut-driver at cyberpower.service" for details.
>> [root at mythtv nut-driver at .service.d]# systemctl --full --no-pager 
>> status nut-driver at cyberpower.service
>>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 cyberpower.service.d
>>              └─nut-driver-enumerator-generated-checksum.conf, 
>> nut-driver-enumerator-generated.conf
>>      Active: activating (auto-restart) (Result: exit-code) since Fri 
>> 2022-12-02 05:54:03 CST; 2s ago
>>     Process: 10732 ExecStartPre=/usr/bin/systemd-tmpfiles --create 
>> /usr/lib/tmpfiles.d/nut-client.conf (code=exited, status=0/SUCCESS)
>>     Process: 10733 ExecStart=/bin/sh -c 
>> NUTDEV="`/usr/libexec/nut-driver-enumerator.sh 
>> --get-device-for-service cyberpower`" && [ -n "$NUTDEV" ] || { echo 
>> "FATAL: Could not find a NUT device section for service unit 
>> cyberpower" >&2 ; exit 1 ; } ; /usr/sbin/upsdrvctl start "$NUTDEV" 
>> (code=exited, status=1/FAILURE)
>>         CPU: 80ms
>> =========================================
>>
>> It seems that the nut device driver requires environ.conf to be present.
>>
>> Test 2 - I moved environ.conf back to the correct place.  I edited the 
>> file to use "Environment=NUT_STATEPATH=/run/nut".  I did a 
>> daemon-reload then started the nut-driver.  It worked - no errors.
>>
>> Test 3 - I modified /etc/ups/upsd.conf to comment out the STATEPATH 
>> line.  I restarted nut-server.service.  It failed.
>>
>> ================================
>> [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; 
>> enabled; preset: disabled)
>>      Active: active (running) since Fri 2022-12-02 06:00:54 CST; 13s ago
>>    Main PID: 11452 (upsd)
>>       Tasks: 1 (limit: 9482)
>>      Memory: 728.0K
>>         CPU: 5ms
>>      CGroup: /system.slice/nut-server.service
>>              └─11452 /usr/sbin/upsd -F
>>
>> Dec 02 06:00:54 mythtv.billgee.local nut-server[11452]: listening on 
>> ::1 port 3493
>> Dec 02 06:00:54 mythtv.billgee.local nut-server[11452]: listening on 
>> 127.0.0.1 port 3493
>> Dec 02 06:00:54 mythtv.billgee.local upsd[11452]: listening on ::1 
>> port 3493
>> Dec 02 06:00:54 mythtv.billgee.local upsd[11452]: listening on 
>> 127.0.0.1 port 3493
>> Dec 02 06:00:54 mythtv.billgee.local nut-server[11452]: /var/run is 
>> world readable
>> Dec 02 06:00:54 mythtv.billgee.local upsd[11452]: /var/run is world 
>> readable
>> Dec 02 06:00:54 mythtv.billgee.local upsd[11452]: Can't connect to UPS 
>> [cyberpower] (usbhid-ups-cyberpower): No such file or directory
>> Dec 02 06:00:54 mythtv.billgee.local nut-server[11452]: Can't connect 
>> to UPS [cyberpower] (usbhid-ups-cyberpower): No such file or directory
>> Dec 02 06:00:54 mythtv.billgee.local nut-server[11452]: Running as 
>> foreground process, not saving a PID file
>> Dec 02 06:00:54 mythtv.billgee.local upsd[11452]: Running as 
>> foreground process, not saving a PID file
>> ===================================
>>
>> Test 4 - I uncommented the STATEPATH line in upsd.conf.  It points to 
>> /run/nut.  I restarted nut-server.  Success.
>>
>>
>> ===============
>> Bill Gee
>>
>> On 12/1/22 18:35, Simon Wilson via Nut-upsuser wrote:
>>> Resending as original was too big for list acceptance.
>>>
>>> Hi Bill,
>>>
>>> /etc/systemd/system/nut-driver at .service.d/environ.conf sets the 
>>> nut-driver service's environment variable, such that it sees a 
>>> workable NUT_STATEPATH of /var/run/nut when upsdrvctl is run by the 
>>> service, regardless of what is set in upsd.conf, and explains why the 
>>> driver worked yesterday but upsd didn't.
>>>
>>> Tests which may be interesting:
>>>
>>> 1. First test:- move nut-driver's environ.conf file to somewhere else 
>>> temporarily; leave upsd.conf STATEPATH uncommented saying /run/nut; 
>>> restart nut-driver at cyberpower.service; and see if it runs. This tests 
>>> to see if it *needs* the drop-in service file *or* will work with 
>>> only STATEPATH explicitly set in upsd.conf to /run/nut.  If this 
>>> prevents the driver from working, put the environ.conf file back (but 
>>> edit it, it should say /run/nut, not /var/run/nut)
>>>
>>> 2. Second test:- copy the edited 
>>> /etc/systemd/system/nut-driver at .service.d/environ.conf to 
>>> /etc/systemd/system/nut-server.service.d/environ.conf. So you should 
>>> at that point have both locations with a file saying
>>>   [Service]
>>>   Environment=NUT_STATEPATH=/run/nut
>>> Then comment out STATEPATH line (back to default) in upsd.conf and 
>>> restart nut-server - does it still start, and does it still pop a 
>>> "Could not find PID file '/var/run/upsd.pid'" message? That tests 
>>> whether the drop-in file is a better, more consistent fix for now 
>>> (until the packages are resolved). Calling the nut-server process 
>>> with that variable set for upsd *even before it reads upsd.conf* may 
>>> remove the first error 'Could not find PID file '/var/run/upsd.pid''
>>>
>>> And definitely document any changes you make to your setup as 
>>> subsequent package releases will likely change all of this :)
>>>
>>> Couple more comments inline below.
>>>
>>> Simon
>>>
>>>
>>> ----- Message from Bill Gee <bgee at campercaver.net> ---------
>>>    Date: Thu, 1 Dec 2022 16:49: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
>>>
>>>> Checking now - There is a file called 
>>>> /etc/systemd/system/nut-driver at .service.d/environ.conf.  Its 
>>>> contents are
>>>>
>>>> ==========================
>>>> [root at mythtv nut-driver at .service.d]# ll
>>>> total 8
>>>> -rw-r--r-- 1 root root 49 Nov 29 18:14 environ.conf
>>>> -rw-r--r-- 1 root root 81 Nov 30 18:58 
>>>> nut-driver-enumerator-generated-checksum.conf
>>>>
>>>> [root at mythtv nut-driver at .service.d]# cat environ.conf
>>>> [Service]
>>
>> [snip]
>>
>> _______________________________________________
>> 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> -----
> 
> 
> 



More information about the Nut-upsuser mailing list