NEWS
[HowTo] USV: NUT Server auf SBC installieren
-
Wenn ich dem Installationsprotokoll bei mir trauen darf, dann wird das ganze systemd-Zeuch schon richtig eingerichtet:
pi@raspberrypi:/opt/iobroker $ sudo apt install nut Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Die folgenden zusätzlichen Pakete werden installiert: libupsclient4 nut-client nut-server Vorgeschlagene Pakete: nut-monitor nut-cgi nut-ipmi nut-snmp nut-xml Die folgenden NEUEN Pakete werden installiert: libupsclient4 nut nut-client nut-server 0 aktualisiert, 4 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. Es müssen 1.358 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 4.902 kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] j Holen:1 http://mirror.netcologne.de/raspbian/raspbian buster/main armhf libupsclient4 armhf 2.7.4-8 [180 kB] Holen:2 http://mirror.netcologne.de/raspbian/raspbian buster/main armhf nut-client armhf 2.7.4-8 [243 kB] Holen:3 http://mirror.netcologne.de/raspbian/raspbian buster/main armhf nut-server armhf 2.7.4-8 [690 kB] Holen:4 http://mirror.netcologne.de/raspbian/raspbian buster/main armhf nut all 2.7.4-8 [245 kB] Es wurden 1.358 kB in 1 s geholt (1.654 kB/s). Vormals nicht ausgewähltes Paket libupsclient4:armhf wird gewählt. (Lese Datenbank ... 85374 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../libupsclient4_2.7.4-8_armhf.deb ... Entpacken von libupsclient4:armhf (2.7.4-8) ... Vormals nicht ausgewähltes Paket nut-client wird gewählt. Vorbereitung zum Entpacken von .../nut-client_2.7.4-8_armhf.deb ... Entpacken von nut-client (2.7.4-8) ... Vormals nicht ausgewähltes Paket nut-server wird gewählt. Vorbereitung zum Entpacken von .../nut-server_2.7.4-8_armhf.deb ... Entpacken von nut-server (2.7.4-8) ... Vormals nicht ausgewähltes Paket nut wird gewählt. Vorbereitung zum Entpacken von .../archives/nut_2.7.4-8_all.deb ... Entpacken von nut (2.7.4-8) ... libupsclient4:armhf (2.7.4-8) wird eingerichtet ... nut-client (2.7.4-8) wird eingerichtet ... Created symlink /etc/systemd/system/multi-user.target.wants/nut-monitor.service → /lib/systemd/system/nut-monitor.service. Job for nut-monitor.service failed because the service did not take the steps required by its unit configuration. See "systemctl status nut-monitor.service" and "journalctl -xe" for details. invoke-rc.d: initscript nut-client, action "start" failed. ● nut-monitor.service - Network UPS Tools - power device monitor and shutdown controller Loaded: loaded (/lib/systemd/system/nut-monitor.service; enabled; vendor preset: enabled) Active: failed (Result: protocol) since Thu 2020-11-05 18:57:48 CET; 24ms ago Process: 19720 ExecStart=/sbin/upsmon (code=exited, status=0/SUCCESS) Nov 05 18:57:48 raspberrypi systemd[1]: Starting Network UPS Tools - power device monitor and shutdown controller... Nov 05 18:57:48 raspberrypi upsmon[19720]: upsmon disabled, please adjust the configuration to your needs Nov 05 18:57:48 raspberrypi upsmon[19720]: Then set MODE to a suitable value in /etc/nut/nut.conf to enable it Nov 05 18:57:48 raspberrypi systemd[1]: nut-monitor.service: Can't open PID file /run/nut/upsmon.pid (yet?) after start: No such file or directory Nov 05 18:57:48 raspberrypi systemd[1]: nut-monitor.service: Failed with result 'protocol'. Nov 05 18:57:48 raspberrypi systemd[1]: Failed to start Network UPS Tools - power device monitor and shutdown controller. nut-server (2.7.4-8) wird eingerichtet ... Created symlink /etc/systemd/system/multi-user.target.wants/nut-server.service → /lib/systemd/system/nut-server.service. nut-driver.service is a disabled or a static unit, not starting it. nut (2.7.4-8) wird eingerichtet ... Trigger für systemd (241-7~deb10u4+rpi1) werden verarbeitet ... Trigger für man-db (2.8.5-2) werden verarbeitet ... Trigger für libc-bin (2.28-10+rpi1) werden verarbeitet ...
Insbesondere die Zeile
Created symlink /etc/systemd/system/multi-user.target.wants/nut-monitor.service → /lib/systemd/system/nut-monitor.service.
sollte das korrekt machen. Ich vermute, bei dir beißt sich da jetzt was mit deinem start über initd. Nach Prof. Dr. Highlander gilt: Es kann nur einen geben.
-
Habe die Zeilen bei mir jetzt auskommentiert.
Bleibt nach einem Neustart alles beim alten.Kann man das setup Script nochmal drüber laufen lassen, ohne dass die setting gelöscht werden?
-
@David-G Was für ein setup skript?
Auf meinem System meldet sich der Server jedenfalls:
pi@raspberrypi:/opt/iobroker $ sudo systemctl start nut-server pi@raspberrypi:/opt/iobroker $ systemctl status nut-server.service ● nut-server.service - Network UPS Tools - power devices information server Loaded: loaded (/lib/systemd/system/nut-server.service; enabled; vendor preset: enabled) Active: inactive (dead) since Thu 2020-11-05 19:17:06 CET; 2s ago Process: 32525 ExecStart=/sbin/upsd (code=exited, status=0/SUCCESS) Nov 05 19:17:06 raspberrypi systemd[1]: Starting Network UPS Tools - power devices information server... Nov 05 19:17:06 raspberrypi upsd[32525]: upsd disabled, please adjust the configuration to your needs Nov 05 19:17:06 raspberrypi upsd[32525]: Then set MODE to a suitable value in /etc/nut/nut.conf to enable it Nov 05 19:17:06 raspberrypi systemd[1]: nut-server.service: Succeeded. Nov 05 19:17:06 raspberrypi systemd[1]: Started Network UPS Tools - power devices information server.
Die Fehlermeldung kommt bei mir daher, dass ich in der config nichts eingetragen habe. Und da ich keine USV habe...
-
-
@David-G
Jein. usbutils war/ist schon auf meinem System drauf gewesen.
Ansonsten siehst du meine Ein- und auch die Ausgaben ja oben. -
Dann lasse ich den
sudo apt install nut
Mal drüber laufen, Fall die settings gelöscht werden, muss ich morgen Abend am Rechner die Sachen neu eingeben.
-
systemctl get-default
-
Anstatt meines Befehle aus dem letzten Post?
-
@David-G Nee, ergänzend.
-
Last login: Thu Nov 5 19:12:24 2020 from 192.168.99.55 pi@iobroker:~ $ systemctl get-default graphical.target pi@iobroker:~ $ sudo apt install nut Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig nut ist schon die neueste Version (2.7.4-8). 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 5 nicht aktualisiert. pi@iobroker:~ $
-
sudo systemctl set-default multi-user.target sudo apt update sudo apt dist-upgrade sudo reboot
-
@David-G
Und eigentlich muss man jetzt wohl nur noch zwei Dateien mit Leben füllen:sudo nano /etc/nut/ups.conf sudo nano /etc/nut/nut.conf
Da muss aber ggf. jemand anderes mit einer USV weiterhelfen, das kann ich hier nicht mehr nachstellen.
-
Die Dateien hatte ich ja bereits befüllt.
Musste sogar noch eine mehr sein glaube ich.
Eigentlich haben die Befehle von oben doch nichts überschrieben oder?Jetzt ist alles durch und neugestartet.
Alles genau beim alten.
Die Ausgabe bei allen Befehlen von dir ist identisch.Nachdem ich die beidem Befehle zum starten manuell absetze klappt es.
-
@David-G Was steht denn in den beiden Dateien nun drin?
-
Benutzer für den Zugriff auf den Service und was für ein USB Treiber.
Das war es eigentlich.
Bin jetzt noch was weiter gekommen.
Wenn ich den Service sroppe und wieder starte läuft er.Scheinbar ist das Netzwerk noch nicht da, wenn er den Service laden möchte.
So scheint es hier zu sein.
reddit.com
Am Ende der Diskussion kommen sie zu dem Schluss mit dem Netzwerk. Aber keine Lösung.EDIT:
Weiter oben in dem Status vom Dienst steht ein Fehler mit "listen". So bin ich auf den Forenbeitrag gekommen.
Meine Fehlermeldung ist zwar minimal anders, jedoch hilft auch der Neustart vom Dienst.Man müsste ihn verzögert starten können.
EDIT 2:
Müsste ich den Service hier sehen?Last login: Thu Nov 5 20:40:24 2020 from 192.168.99.55 pi@iobroker:~ $ cd /etc/systemd/system pi@iobroker:/etc/systemd/system $ ls autologin@.service bluetooth.target.wants dbus-fi.w1.wpa_supplicant1.service dbus-org.bluez.service dbus-org.freedesktop.Avahi.service dbus-org.freedesktop.timesync1.service default.target dhcpcd5.service display-manager.service getty.target.wants getty@tty1.service.d graphical.target.wants halt.target.wants multi-user.target.wants mysqld.service mysql.service network-online.target.wants poweroff.target.wants rc-local.service.d reboot.target.wants remote-fs.target.wants sockets.target.wants sshd.service sysinit.target.wants syslog.service timers.target.wants pi@iobroker:/etc/systemd/system $
-
-
Wo finde ich die Datei denn?
Unter systemd/system finde ich nichts. -
@Thomas-Braun
Die Datei/etc/systemd/system/multi-user.target.wants/nut-server.service
sollte so aussehen:[Unit] Description=Network UPS Tools - power devices information server After=local-fs.target network.target nut-driver.service # We don't Require drivers to be successfully started! This would be # a change of behavior compared to init SysV, and could prevent from # accessing successfully started, at least to audit a system. Wants=nut-driver.service Before=nut-monitor.service [Service] ExecStart=/sbin/upsd Type=forking [Install] WantedBy=multi-user.target
Die Zeile
After=local-fs.target network.target nut-driver.service
sorgt dafür, dass der nut-server erst gestartet wird, wenn die drei genannten targets bzw. services bereits laufen. -
@David-G
In dem Link
https://www.kepstin.ca/blog/networkupstoolsnutandsystemd/schreibt der noch, das sein System das USB-System zu langsam startet und das nut darauf warten soll. Dafür schreibt der sich eine udev-Regel.
Now for the fun bit; handling starting up the nut driver for the USB UPS automatically once it’s been probed by the kernel. Ideally, we want to make this independent of things like which USB port it happens to be plugged into—this means creating a device file symlink with an appropriate stable name. Lets see what we have available…
Wenn deine USV per USB dran ist würde ich das mal versuchen.
Jedenfalls schreibt der am Ende:And now my UPS drivers reliably start, even when my computer can boot faster than USB can probe.
-
Die drei targets bzw. Dienste standen schon in der Datei.
Langsam finde ich das alles komisch.
Hab grad nochwas gefunden.
Wenn man nochExecStartPre=/bin/sleep 30
mit in den Service einträgt.
Und siehe da.
ES KLAPPT. DER SERVICE STARTET.@Thomas-Braun
Dank dir für die krasse Hilfe.
Das obwohl du den Kram garnicht nutzest.
Dein Lösungsansatz war es. Hab dann nur zufällig noch diesen Ansatz gesehen beim googlen.EDIT:
Grad das mit dem USB gesehen was du gefunden hast.
Das umgehe ich dann scheinbar mit den 30sek auf einen anderen Weg.