Ansonsten würde der Prozeß zum Ausgeben des Logs mehrfach gestartet und man sieht alles mehrfach.
Homebridge Installationsanleitungen
-
-
ich verstehe nicht das du die Methode Custom gewählt hast Zeile 20+21
Das kam so: da unsere Anleitung eine Homebridge installiert, die unter dem User homebrigde mit stark eingeschränkten Rechten läuft, kam es zu einem kleinen Unfall. Die ursprüngliche Konfiguration sah vor, dass die Log-Methode systemd sein sollte, und das schien auch prima zu funktionieren. Aber in Wirklichkeit funktionierte es nicht so recht.
Jedes Mal, wenn homebridge-config-ui-x das Log anzeigt, ruft das Plugin auf dem Raspi den Befehl sudo journalctl -o cat -n 500 -f -u homebridge auf. Kann man auch im Terminal eingeben, das Ergebnis ist die Live-Anzeige des Logs. Dort bricht man die Ausgabe mit ctrl-c wieder ab.
Bei einem Switch zwischen dem Logs-Tab des Web-UI zu einem anderen (beispielsweise zur Pluginliste) wird der Loganzeigeprozess wieder gestoppt. Da homebridge-config-ui-x dafür aber kein ctrl-c eingeben kann, beendet das Plugin den Prozess sudo journalctl mit einem kill. Aber der User homebridge darf keinen Prozess killen, der mit sudo aufgerufen wurde, selbst wenn er ihn selber aufgerufen hat. Das führt dazu, dass der kill-Prozess fehlschlägt. Leider wird das nur in Logs vermerkt, die man nie liest (/var/log/auth.log).
Weil der kill-Prozess fehlschlägt, führt das dazu, dass der Befehl sudo journalctl nicht beendet wird. Er läuft einfach weiter. Und immer, wenn man in homebridge-config-ui-x einen Blick auf das Log werfen will, wird ein neuer Prozess gestartet, und noch einer, und noch einer, bis irgendwann journalctl die Fehlermeldung ausspuckt, dass zu viele Logs geöffnet sind. Bei mir war das beim 128. Mal soweit.
Mit ps aux sieht man dann die vielen sudo journalctl-Prozesse laufen. Sie werden alle erst beendet, wenn man homebridge-config-ui-x stoppt. Das passiert ja häufig, wenn man beispielsweise die Homebridge nach dem Update eines Plugins neustartet. Daher ist mir das ein Jahr lang nicht aufgefallen.
Abhilfe hat geschaffen, dass der Loganzeigeprozess ohne sudo aufgerufen wird, also nur mit journalctl -o cat -n 500 -f -u homebridge. Damit das geht, muss sich der User homebridge in der Usergruppe systemd-journal befinden. Und in der Konfiguration von homebridge-config-ui-x muss dann die Logmethode von systemd auf custom umgestellt werden.
Läuft die Homebridge unter dem User pi, passiert das alles nicht, denn der User pi darf halt alles.
Stefan
Das kam so...
Ok. Zu solchen Romanen bin ich in der Hitze nicht fähig.
Leider tauch jetzt auf einmal folgendes Problem auf:
Code
Alles anzeigenJun 30 14:10:00 iobroker homebridge[31898]: [2019-6-30 2:10:00 PM] TypeError: Cannot read property 'indexOf' of undefined Jun 30 14:10:00 iobroker homebridge[31898]: at API.platform (/usr/local/lib/node_modules/homebridge/lib/api.js:120:12) Jun 30 14:10:00 iobroker homebridge[31898]: at Server._loadPlatforms (/usr/local/lib/node_modules/homebridge/lib/server.js:327:45) Jun 30 14:10:00 iobroker homebridge[31898]: at Server.run (/usr/local/lib/node_modules/homebridge/lib/server.js:90:36) Jun 30 14:10:00 iobroker homebridge[31898]: at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:59:10) Jun 30 14:10:00 iobroker homebridge[31898]: at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22) Jun 30 14:10:00 iobroker homebridge[31898]: at Module._compile (internal/modules/cjs/loader.js:776:30) Jun 30 14:10:00 iobroker homebridge[31898]: at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10) Jun 30 14:10:00 iobroker homebridge[31898]: at Module.load (internal/modules/cjs/loader.js:653:32) Jun 30 14:10:00 iobroker homebridge[31898]: at tryModuleLoad (internal/modules/cjs/loader.js:593:12) Jun 30 14:10:00 iobroker homebridge[31898]: at Function.Module._load (internal/modules/cjs/loader.js:585:3) Jun 30 14:10:02 iobroker homebridge[31898]: [2019-6-30 2:10:02 PM] [MiAqaraPlatform] [INFO]Aqara LAN protocol server is listening on port: 9898 Jun 30 14:10:02 iobroker homebridge[31898]: [2019-6-30 2:10:02 PM] Got SIGTERM, shutting down Homebridge... Jun 30 14:10:10 iobroker systemd[1]: homebridge.service: Main process exited, code=exited, status=143/n/a Jun 30 14:10:10 iobroker systemd[1]: homebridge.service: Failed with result 'exit-code'.
Habe die Homebridge mit gleicher config auf einem anderen Rasp ohne Probleme laufen, komme leider nicht mehr weiter
Da müsste ich etwas mehr von der Fehlermeldung sehen, nämlich das, was davor stand.
Stefan
Das kam so: .......
Stefan
Wow, FETTES Dankeschön - für die Erklärung, ich müsste mal wieder in deine SUPER und einzigartige UP_TO_DATE_Anleitung schauen.... und es bei mir auch noch einbauen / umbauen
wo ich hier schon mal Online bin, hatte wer schon Sync Probleme mit Mojave HK ? - glaube das ich schon mal gefragt hatte....
Ich habe jetzt die Homebridge mal auf einem neuen Pi4B nach Anleitung installiert.
Die Bridge läuft wohl auch lt. config-ui-x.
Am Ende de Logs habe ich aber eine Fehlermeldung. Kann mir wer helfen diese zu interpretieren?
Codehomebridge : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/kill -9 5549 pam_unix(sudo:session): session opened for user root by (uid=0) pam_unix(sudo:session): session closed for user root homebridge : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/kill -9 5562 pam_unix(sudo:session): session opened for user root by (uid=0) pam_unix(sudo:session): session closed for user root homebridge : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/bin/kill -9 5575 pam_unix(sudo:session): session opened for user root by (uid=0) pam_unix(sudo:session): session closed for user root
Das sind keine Fehlermeldungen. Der User root killt Prozesse. Welches log ist das?
Das Log welches ich über das config-ui-x Plugin mit
journalctl -o cat -n 500 -f -u homebridge -u homebridge-config-ui-x
aufrufe.
2, 3 mal neugestartet und jetzt läuft es.
Würde mich interessieren was das war.
Das könnte auftreten, wenn du in homebridge-config-ui-x das Log anschaust und dann im Menü etwas anderes dort anklickst wie zum Beispiel Plugins oder Config.
hi,
nach dem config-ui update auf 4.50 habe ich folgendes Problem:
In der Weboberfläche unter Protokoll steht anstelle des Protokolls:
Code
Alles anzeigenLoading logs using "systemd" method... CMD: sudo -n journalctl -o cat -n 500 -f -u homebridge >>> /etc/sudoers.d/homebridge: Syntax-Fehler near line 1 <<< sudo: Syntax-Fehler in /etc/sudoers.d/homebridge bei der Zeile 1 sudo: Keine gültige sudoers-Quelle gefunden, Programmende sudo: Regelwerks-Plugin konnte nicht initialisiert werden The log tail command "-n journalctl -o cat -n 500 -f -u homebridge" exited with code 1. Please check the command in your config.json is correct. See https://github.com/oznu/homebridge-config-ui-x#log-viewer-configuration for instructions.
Irgendwie bin ich gerade zu blöd und bekomme es nicht gebacken.
Na Super jetzt auch noch das zweite Problem aufgetaucht
Ja, aber wie kann ich die denn Bearbeiten oder löschen wenn ich keine Zugrissrechte habe?
kannst du sudo su - nutzen?
falls da, dann als naechstes nano /etc/sudoers.d/homebridge
Und dort drinnen sollte es dann eig so aussehen:
Codehomebridge ALL=(root) SETENV:NOPASSWD: /usr/local/bin/npm, /bin/systemctl restart homebridge, /bin/journalctl, /usr/local/bin/node
Oder alternativ so:
Empfehlenswerter aber die erste Variante
Tja. Dumm gelaufen. Jetzt helfen nur noch ein Monitor und eine Tastatur am Raspi, um dich dort direkt als root anzumelden - falls du das root-Passwort hast. Auch noch gehen könnte das Booten im Single User Mode.
Es reicht aus, die Datei /etc/sudoers.d/homebridge zu löschen.
rm /etc/sudoers.d/homebridge
Um derartige Probleme zu vermeiden: sudoers-Dateien nur mit visudo bearbeiten!
visudo -f /etc/sudoers.d/homebridge
Auch ich habe nun mal versucht, das ganze auf einem Raspi mit OSMC zum laufen zu bringen. Leider noch etwas erfolglos bisher, trotz der guten Anleitung. Aber leider klappten auch nicht alle Schritte bzw. es wurden mal die eine oder andere Info ausgespuckt. Zum Glück immer nur Kleinigkeiten...
Der erste markante ist mir aufgefallen beim "Homebridge User anlegen". Gebe ich den Befehl:
Codesudo useradd -m -c "Homebridge Service" -s /bin/bash -G audio,bluetooth,dialout,gpio,systemd-journal,video homebridge
So ergab das folgende Meldung:
useradd: Gruppe »bluetooth« existiert nicht.
useradd: Gruppe »gpio« existiert nicht.
Nehme ich beide Gruppen raus aus dem obigen Befehl, gibt es keine Fehlermeldung mehr. Sind diese zwei Gruppen sehr wichtig? Wenn ja, wie kann ich sie anlegen?
Das zweite "Problem" gab es dann mit dem Hinweis im gelben Kasten auf der zweiten Seite, wo es um die Systemrechte beim installieren von Plugins geht.
Der Befehl:
Codehomebridge ALL=(ALL) SETENV:NOPASSWD: ALL endet im Terminal mit einem: "-bash: Syntaxfehler beim unerwarteten Wort `('
Jemand eine Idee? Die Klammer hat ja sicher ihre Berechtigung oder?
Dann habe ich noch folgende Fehlermeldungen protokolliert:
Codeosmc@OSMC:/home/homebridge$ systemctl status homebridge ? homebridge.service - Node.js HomeKit Server Loaded: loaded (/etc/systemd/system/homebridge.service; enabled) Active: activating (auto-restart) (Result: exit-code) since So 2019-08-18 15:47:22 CEST; 8s ago Process: 4382 ExecStart=/usr/local/bin/homebridge $HOMEBRIDGE_OPTS (code=exited, status=1/FAILURE) Main PID: 4382 (code=exited, status=1/FAILURE) osmc@OSMC:/home/homebridge$
und über den Befehl "sudo journalctl -fau homebridge" bekam ich diese Fehlerinfo:
Code
Alles anzeigenAug 18 15:36:40 OSMC systemd[1]: homebridge.service holdoff time over, scheduling restart. Aug 18 15:36:40 OSMC systemd[1]: Stopping Node.js HomeKit Server... Aug 18 15:36:40 OSMC systemd[1]: Starting Node.js HomeKit Server... Aug 18 15:36:40 OSMC systemd[1]: Started Node.js HomeKit Server. Aug 18 15:36:42 OSMC homebridge[2848]: /usr/local/lib/node_modules/homebridge/node_modules/mkdirp/index.js:90 Aug 18 15:36:42 OSMC homebridge[2848]: throw err0; Aug 18 15:36:42 OSMC homebridge[2848]: ^ Aug 18 15:36:42 OSMC homebridge[2848]: Error: EACCES: permission denied, mkdir '/var/homebridge/persist' Aug 18 15:36:42 OSMC homebridge[2848]: at Object.mkdirSync (fs.js:757:3) Aug 18 15:36:42 OSMC homebridge[2848]: at Function.sync (/usr/local/lib/node_modules/homebridge/node_modules/mkdirp/index.js:71:13) Aug 18 15:36:42 OSMC homebridge[2848]: at LocalStorage.parseDirSync (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/node-persist/src/local-storage.js:642:20) Aug 18 15:36:42 OSMC homebridge[2848]: at LocalStorage.parseDataDirSync (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/node-persist/src/local-storage.js:572:21) Aug 18 15:36:42 OSMC homebridge[2848]: at LocalStorage.initSync (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/node-persist/src/local-storage.js:145:14) Aug 18 15:36:42 OSMC homebridge[2848]: at Object.nodePersist.initSync (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/node_modules/node-persist/src/node-persist.js:41:29) Aug 18 15:36:42 OSMC homebridge[2848]: at Object.init (/usr/local/lib/node_modules/homebridge/node_modules/hap-nodejs/index.js:31:13) Aug 18 15:36:42 OSMC homebridge[2848]: at module.exports (/usr/local/lib/node_modules/homebridge/lib/cli.js:30:7) Aug 18 15:36:42 OSMC homebridge[2848]: at Object.<anonymous> (/usr/local/lib/node_modules/homebridge/bin/homebridge:17:22) Aug 18 15:36:42 OSMC homebridge[2848]: at Module._compile (internal/modules/cjs/loader.js:778:30) Aug 18 15:36:42 OSMC systemd[1]: homebridge.service: main process exited, code=exited, status=1/FAILURE Aug 18 15:36:42 OSMC systemd[1]: Unit homebridge.service entered failed state.
Das System läuft aktuell also nicht so ganz richtig... Kann mir da jemand helfen?
So ergab das folgende Meldung:
useradd: Gruppe »bluetooth« existiert nicht.
useradd: Gruppe »gpio« existiert nicht.
Nehme ich beide Gruppen raus aus dem obigen Befehl, gibt es keine Fehlermeldung mehr. Sind diese zwei Gruppen sehr wichtig?Am Ende vergibst du mit dem obigen Befehl nur die Rechte fuer den user homebridge womit er arbeiten kann. Brauchst du weder das eine noch das andere fuer homebridge als solches, kannst du es auch weglassen. Welche Geraete/Plugins moechtest du denn mit homebrige nutzen?
homebridge ALL=(ALL) SETENV:NOPASSWD: ALL endet im Terminal mit einem: "-bash: Syntaxfehler beim unerwarteten Wort `('
Bei diesem Befehl geht es nur darum, worauf hat homebridge Zugriff. Hier solltest du eher dabei bleiben:
sudo nano /etc/sudoers.d/homebridge
homebridge ALL=(root) SETENV:NOPASSWD: /usr/local/bin/npm, /bin/systemctl restart homebridge, /bin/journalctl, /usr/local/bin/node
Deine Zeile ist eher eine Alternative fuer die, die ein weniger geschuetztes System bevorzugen und mehr Rechte haben wollen. Zudem wird dieser Befehl in der Datei /etc/sudoers.d/homebridge eingetragen und nicht einfach ins Terminal kopiert
Aug 18 15:36:42 OSMC homebridge[2848]: Error: EACCES: permission denied, mkdir '/var/homebridge/persist'
Homebridge hat keine Zugriffsrechte fuer diesen Ordner. Hast du dem ordner /var/homebridge auch alle noetigen Rechte gegeben? Siehe sudo chown -R homebridge:homebridge /var/homebridge
Soweit ich das erkennen kann, sind die Rechte nicht richtig gesetzt und deshalb laeuft das Ganze nicht so wirklich.
So ergab das folgende Meldung:
useradd: Gruppe »bluetooth« existiert nicht.
useradd: Gruppe »gpio« existiert nicht.
Nehme ich beide Gruppen raus aus dem obigen Befehl, gibt es keine Fehlermeldung mehr. Sind diese zwei Gruppen sehr wichtig? Wenn ja, wie kann ich sie anlegen?Lass sie raus. Sie haben auf Raspberian eine Bedeutung, unter OSMC offenbar nicht. Alternativ könntest du die Gruppen auch anlegen, aber das wird keine weiteren Auswirkungen haben, weder positive noch negative: groupadd bluetooth gpio. Unter Raspberian sind der Gruppe verschiedene Ausführungsrechte von bestimmten Programmen zugeordnet. User, die beispielsweise nicht in der Gruppe bluetooth sind, können dann nicht auf Bluetooth-Programme und -Funktionen zugreifen. Das wird unter OSMC wohl anders gehandhabt und daher spielen wahrscheinlich alle Gruppen keine Rolle.
Ich nehme an, dass bei dir auch ein einfaches sudo useradd -m -c "Homebridge Service" -s /bin/bash homebridge ausreicht. Aber ich kenne OSMC nicht und kannte es auch nicht bis vor wenigen Minuten.
Deine Zeile ist eher eine Alternative fuer die, die ein weniger geschuetztes System bevorzugen und mehr Rechte haben wollen. Zudem wird dieser Befehl in der Datei /etc/sudoers.d/homebridge eingetragen und nicht einfach ins Terminal kopiert
Das wird gelegentlich falsch gemacht, was vor allem bedeutet: die Anleitung muss an dieser Stelle einfach deutlicher werden.
Aug 18 15:36:42 OSMC homebridge[2848]: Error: EACCES: permission denied, mkdir '/var/homebridge/persist'
Wie schon @vgnsxe schreibt: hier fehlen wohl die richtigen Rechte für /var/homebridge.
Stefan