NEWS
[Gelöst] NUT bzw. upsd über Blockly neu starten
-
Guten Morgen,
an einem meiner Raspis habe ich eine Greencell USV per USB angeschlossen und den upsd (Dienst?) eingerichtet. Funktioniert seit mehreren Monaten auch sauber. Nur nach einem reboot des Raspis bekommt die Instanz "nut.0" keine Verbindung zum Dienst und ich muss erst mit:
sudo upsd -c stop
den Dienst stoppen und dann mit
sudo upsd
wieder starten. Das wollte ich eigentlich automatisieren und habe gedacht, das könnte ich mit Blockly und den "exec" Blöcken lösen. Funktioniert aber nicht, da man die Befehle mit "sudo" aufrufen muss und der Benutzer "iobroker" keine Sudo Rechte hat und ich die dem auch nicht geben will. So habe ich es zumindest hier im Forum gelesen.
Am besten wäre es natürlich, ich könnte das von meinem IoBroker (VM auf NUC) aus machen, aber auch darüber und einer Funktion klapp es nicht. Ich hatte extra einen zusätzlichen Benutzer auf dem Raspi angelegt, aber der darf nur das System remote neu starten.Jemand eine Idee wie ich das lösen könnte?
Gruß, Johannes
-
-
@thomas-braun sagte in NUT bzw. upsd über Blockly neu starten:
systemctl status upsd.service
smarthome@raspi4gb:~ $ systemctl status upsd.service Unit upsd.service could not be found. smarthome@raspi4gb:~ $ sudo systemctl status upsd.service Unit upsd.service could not be found.
Deswegen habe ich ja gefragt, ob das überhaupt ein Dienst ist.
-
Ich habe gerade nochmal in dem Beitrag https://forum.iobroker.net/topic/23688/howto-usv-nut-server-auf-sbc-installieren/2 nachgelesen, dass man eine Zeile für eine Pause einfügen soll. Habe also die:
sudo nano /etc/systemd/system/multi-user.target.wants/nut-server.service
editiert und die Zeile mit dem Sleep eingefügt.
[Unit] Description=Network UPS Tools - power devices information server After=local-fs.target network.target nut-driver.target # 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.target # The `upsd` is a networked service (even if bound to a `localhost`) # so it requires that the OS has some notion of networking already. # Extending the unit does not require *this* file to be edited, you # can instead drop in an additional piece of configuration, e.g. add # a `/etc/systemd/system/nut-server.service.d/network.conf` with: # [Unit] # Requires=network-online.target # After=network-online.target Requires=network.target Before=nut-monitor.service PartOf=nut.target [Service] EnvironmentFile=-/etc/nut/nut.conf SyslogIdentifier=%N # Note: foreground mode by default skips writing a PID file (and # needs Type=simple); can use "-FF" here to create one anyway: ExecStartPre=/bin/sleep 30 ExecStart=/sbin/upsd -F ExecReload=/sbin/upsd -c reload -P $MAINPID [Install] WantedBy=nut.target
Eventuell reicht das ja schon und die USV ist jetzt auch nach einem Neustart zu erreichen.
Wenn ich das jetzt richtig verstanden habe, ist der eigentliche Dienst der "nut-server" und und da gibt dein vorgeschlagener Befehl folgendes aus:
smarthome@raspi4gb:~ $ sudo systemctl status nut-server.service Warning: The unit file, source configuration file or drop-ins of nut-server.service changed on disk. Run 'systemctl daemon-reload' to reload units. × nut-server.service - Network UPS Tools - power devices information server Loaded: loaded (/lib/systemd/system/nut-server.service; enabled; preset: enabled) Active: failed (Result: exit-code) since Wed 2024-03-06 10:03:42 CET; 2h 44min ago Duration: 2.988s Main PID: 777 (code=exited, status=1/FAILURE) CPU: 19ms Mär 06 10:03:42 raspi4gb nut-server[777]: Could not find PID file '/run/nut/upsd.pid' to see if previous upsd instance is already running! Mär 06 10:03:42 raspi4gb nut-server[777]: not listening on 192.168.1.11 port 3493 Mär 06 10:03:42 raspi4gb nut-server[777]: listening on 127.0.0.1 port 3493 Mär 06 10:03:42 raspi4gb nut-server[777]: no listening interface available Mär 06 10:03:42 raspi4gb nut-server[777]: Network UPS Tools upsd 2.8.0 Mär 06 10:03:42 raspi4gb upsd[777]: not listening on 192.168.1.11 port 3493 Mär 06 10:03:42 raspi4gb upsd[777]: listening on 127.0.0.1 port 3493 Mär 06 10:03:42 raspi4gb upsd[777]: no listening interface available Mär 06 10:03:42 raspi4gb systemd[1]: nut-server.service: Main process exited, code=exited, status=1/FAILURE Mär 06 10:03:42 raspi4gb systemd[1]: nut-server.service: Failed with result 'exit-code'.
Hilft dir das weiter?
-
@jojo58 sagte in NUT bzw. upsd über Blockly neu starten:
Deswegen habe ich ja gefragt, ob das überhaupt ein Dienst ist.
Bei mir ist das ein Dienst...
-
@jojo58 Les mal, was bei Deinem Output so steht. Du hast das service-file geändert, also musst Du auch einmal
sudo systemctl daemon-reload
Eingeben. Danach ein
sudo systemctl restart nut-server
und es sollte laufen.
Auch nach einem Reboot.Gruss, Jürgen
-
Ich glaube man merkt, das ich aus der Windows Welt komme. Jetzt sieht das schon besser aus:
smarthome@raspi4gb:~ $ sudo systemctl status nut-server.service ● nut-server.service - Network UPS Tools - power devices information server Loaded: loaded (/lib/systemd/system/nut-server.service; enabled; preset: enabled) Active: active (running) since Wed 2024-03-06 13:55:06 CET; 2min 28s ago Main PID: 1450 (upsd) Tasks: 1 (limit: 3932) CPU: 52ms CGroup: /system.slice/nut-server.service └─1450 /lib/nut/upsd -F Mär 06 13:55:07 raspi4gb nut-server[1450]: fopen /run/nut/upsd.pid: No such file or directory Mär 06 13:55:07 raspi4gb nut-server[1450]: Could not find PID file '/run/nut/upsd.pid' to see if previous upsd instance is already running! Mär 06 13:55:08 raspi4gb nut-server[1450]: listening on 192.168.1.11 port 3493 Mär 06 13:55:08 raspi4gb upsd[1450]: listening on 192.168.1.11 port 3493 Mär 06 13:55:08 raspi4gb nut-server[1450]: listening on 127.0.0.1 port 3493 Mär 06 13:55:08 raspi4gb upsd[1450]: listening on 127.0.0.1 port 3493 Mär 06 13:55:08 raspi4gb nut-server[1450]: Connected to UPS [ups]: blazer_usb-ups Mär 06 13:55:08 raspi4gb upsd[1450]: Connected to UPS [ups]: blazer_usb-ups Mär 06 13:55:08 raspi4gb nut-server[1450]: Running as foreground process, not saving a PID file Mär 06 13:55:08 raspi4gb upsd[1450]: Running as foreground process, not saving a PID file
Danke für den Hinweis...
EDIT: Diesmal wurde der Dienst nach einem Reboot sauber gestartet.
-
@thomas-braun sagte in NUT bzw. upsd über Blockly neu starten:
Bei mir ist das ein Dienst...
Sollte das bei mir auch so sein? Wenn ja, wie kriege ich das hin, oder soll ich es jetzt einfach so lassen, scheint ja jetzt zu funktionieren.
-
@jojo58 Es ist bei Dir ein Dienst. Und der heisst bei Dir nut-server.service. Das „.service“ bedeutet, dass das als Dienst eingerichtet ist, den man mit
sudo systemctl start/restart/stop Dienstname
steuern kann.
Mit
sudo systemctl enable/disable Dienstname
kann man den automatischen Start ein- und ausschalten. Der steht bei Dir aber bereits auf enabled, also läuft alles.
Gehört so zum Standard-Linux-Einmaleins.Gruss, Jürgen
-
Okay, das habe ich begriffen. Mich hat das halt verwundert, das ich das, laut der Anleitung, über upsd machen soll. Aber wie ich schon geschrieben habe, nach einem Reboot funktioniert es jetzt automatisch und damit ist das Blockly überflüssig geworden. Obwohl ich mich gerne mit Blocklys beschäftige, so finde ich es jetzt besser.
-
Bei mir sind das zwei Services.
Muss aber mal in Ruhe Zuhause schauen was da genau aufgesetzt wurde. -
Dann würde ich das bei mir auch noch anpassen, danke schon mal.
-
@jojo58 sagte in [Gelöst] NUT bzw. upsd über Blockly neu starten:
Dann würde ich das bei mir auch noch anpassen, danke schon mal.
Kein Grund, irgendwas zu ändern. Läuft ja nun korrekt.
@Thomas-Braun Wenn man es simpel viasudo apt install nut
installiert, wird AFAIK gleich passend ein nut-server.service und nut-client.service angelegt. upsd.service als solchen kenne ich gar nicht. Hast Du vermutlich von Hand erstellt?!
Gruss, Jürgen
-
Ist schon länger her. Ist wohl auch nur ein Alias:
echad@chet:~ $ systemctl status upsd.service ● nut-server.service - Network UPS Tools - power devices information server Loaded: loaded (/usr/lib/systemd/system/nut-server.service; enabled; prese> Active: active (running) since Sun 2024-02-18 23:25:29 CET; 2 weeks 2 days> Main PID: 805 (upsd) Tasks: 1 (limit: 8752) CPU: 2min 9.101s CGroup: /system.slice/nut-server.service └─805 /lib/nut/upsd -F Feb 18 23:25:30 chet nut-server[805]: Connected to UPS [ups]: usbhid-ups-ups Feb 18 23:25:30 chet nut-server[805]: Found 1 UPS defined in ups.conf Feb 18 23:25:30 chet upsd[805]: Connected to UPS [ups]: usbhid-ups-ups Feb 18 23:25:30 chet upsd[805]: Found 1 UPS defined in ups.conf Feb 18 23:25:30 chet nut-server[805]: Running as foreground process, not saving>Feb 18 23:25:30 chet nut-server[805]: upsnotify: failed to notify about state 2>Feb 18 23:25:30 chet upsd[805]: Running as foreground process, not saving a PID>Feb 18 23:25:30 chet upsd[805]: upsnotify: failed to notify about state 2: no n>Feb 18 23:25:30 chet nut-server[805]: User upsmon@127.0.0.1 logged into UPS [up>Feb 18 23:25:30 chet upsd[805]: User upsmon@127.0.0.1 logged into UPS [ups] echad@chet:~ $ systemctl status nut-server.service ● nut-server.service - Network UPS Tools - power devices information server Loaded: loaded (/usr/lib/systemd/system/nut-server.service; enabled; prese> Active: active (running) since Sun 2024-02-18 23:25:29 CET; 2 weeks 2 days> Main PID: 805 (upsd) Tasks: 1 (limit: 8752) CPU: 2min 9.105s CGroup: /system.slice/nut-server.service └─805 /lib/nut/upsd -F Feb 18 23:25:30 chet nut-server[805]: Connected to UPS [ups]: usbhid-ups-ups Feb 18 23:25:30 chet nut-server[805]: Found 1 UPS defined in ups.conf Feb 18 23:25:30 chet upsd[805]: Connected to UPS [ups]: usbhid-ups-ups Feb 18 23:25:30 chet upsd[805]: Found 1 UPS defined in ups.conf Feb 18 23:25:30 chet nut-server[805]: Running as foreground process, not saving>Feb 18 23:25:30 chet nut-server[805]: upsnotify: failed to notify about state 2>Feb 18 23:25:30 chet upsd[805]: Running as foreground process, not saving a PID>Feb 18 23:25:30 chet upsd[805]: upsnotify: failed to notify about state 2: no n>Feb 18 23:25:30 chet nut-server[805]: User upsmon@127.0.0.1 logged into UPS [up>Feb 18 23:25:30 chet upsd[805]: User upsmon@127.0.0.1 logged into UPS [ups] echad@chet:~ $