Homematic-Virtual-Interface icon indicating copy to clipboard operation
Homematic-Virtual-Interface copied to clipboard

Core Boot Options setzen funktioniert nicht

Open LevelOne2k opened this issue 5 years ago • 13 comments

Hallo!

Ich wollte gerade die Boot Options "HVL beim Sytemstart starten" setzen. Als ich auf den Link geklickt habe, passierte nichts weiter, die Adresszeile hat kurz geladen und dann ging es nicht weiter: Bildschirmfoto 2020-01-21 um 09 21 52 Kann es vielleicht daran liegen, dass HVL bei mir nicht in /home/pi installiert ist sondern in /home/hvl ?

LevelOne2k avatar Jan 21 '20 08:01 LevelOne2k

Was an der Stelle passiert ist :

  • das Shellscript aus lib\hmvi_npm wird nach /etc/init.d/hvl_service kopiert
  • /etc/init.d/hvl_service bekommt das execute Flag und der Launchdaemon wird aktualisiert.

Folgendes kann schief gehen:

User unter dem HVL läuft darf kein sudo Es gibt kein etc/init.d/ Launcher mehr sondern der Launch passiert über systemd Das Ganze basiert auch auf der Vorraussetzung das hvl unter einem User namens hmvi läuft. der User kam ursprünglich mal aus dem alten Installer.

Das müsste ich vorher alles ermitteln und entsprechend reagieren. Ich nehm das Problem mal ins Backlog auf

thkl avatar Jan 21 '20 16:01 thkl

sollte mit 0.2.74 besser funktionieren. Es wird jetzt systemd benutzt. Der User unter dem das läuft sollte sudo rechte haben. Sonst wird es schwer einen Service zu installieren

thkl avatar Jan 21 '20 17:01 thkl

Okay. Wie kann ich das was Du wissen musst, alles kontrollieren?

Den Ordner "/etc/init.d/" gibt es auf jeden Fall. Aber dort ist nichts von HVL zu sehen: Bildschirmfoto 2020-01-21 um 18 34 14

HVL ist nach "home/hvl/" installiert und nicht nach "home/pi/" falls das auch Auswirkungen darauf haben sollte.

Wenn ich mich dem User "hvl" einlogge und dann "su" eingebe, muss ich danach das root Passwort eingeben. Danach kann ich alles machen, reboot, poweroff, Dateien editieren usw.

Wenn ich mich dem User "hvl" eingeloggt bin und z.B. eingebe:

sudo reboot --> Meldung: "Kein Passworteintrag für Benutzer »reboot«"

oder

su reboot --> Meldung: "Kein Passworteintrag für Benutzer »reboot«"

oder

Mit Nano eine Datei editieren will --> Meldung: "[ Fehler beim Schreiben von /etc/hosts: Keine Berechtigung ]"

Falls das hierauf ein Hinweis ist "User unter dem HVL läuft darf kein sudo"

LevelOne2k avatar Jan 21 '20 17:01 LevelOne2k

in der neuen Version generiere ich das Servicefile .. das heisst es ist Wurst wo das ganze liegt. Das ermittelt hvl selber. Ich ermittle auch den User unter dem das gerade läuft.

Wenn der Automatismus nicht funktioniert (weil der User kein sudoer ist) Es wird in /tmp/ ein File namens hvl.service abgelegt. Folgende Commands sind als root nötig:

mv /tmp/hvl.service /etc/systemd/system
systemctl daemon-reload
systemctl enable hvl

Ich schau mal noch wie ich elegant checken kann ob ich mit sudo root Rechte bekommen kann

thkl avatar Jan 21 '20 17:01 thkl

Ich habe das Update auf Version 0.2.74 gemacht. HVL sagte "please restart". Habe dann unter "Service" auf Neustart geklickt, aber HVL hat keinen Neustart gemacht, ist das normal?

Im Ordner "/etc/systemd/system" ist nichts von "hvl.service" zu sehen, im Ordner "/tmp/" jedoch auch nicht.

LevelOne2k avatar Jan 21 '20 17:01 LevelOne2k

kommt drauf an wie hvl gestartet wurde. Daher geht HVL erstmal davon aus das es über den node daemon Prozess gestartet wurde. Wenn der Autostart enabled wurde, dann wird das umgebaut auf sudo service hvl restart

thkl avatar Jan 21 '20 17:01 thkl

Nach der Installation habe ich HVL das erste Mal so gestartet: /home/hvl/node_modules/homematic-virtual-interface/bin/hmviservice start

LevelOne2k avatar Jan 21 '20 17:01 LevelOne2k

Ich habe jetzt das Update auf Version 0.2.75 gemacht. Aber auch hier, hat der Neustart unter Service nicht geklappt. HVL läuft immer weiter.

Auch funktioniert dieser Befehl dann nicht bzw. HVL läuft weiter: /home/hvl/node_modules/homematic-virtual-interface/bin/hmviservice stop

Es kommt dann zwar:

Stopping HMVirtual daemon...
Stopping daemon...
HMVirtual daemon stopped.
Daemon stopped.

Aber HVL läuft immer weiter.

LevelOne2k avatar Jan 21 '20 17:01 LevelOne2k

Ich Dummkopf muss natürlich trotz Update erstmal hier klicken: Bildschirmfoto 2020-01-21 um 19 39 55

Danach ist die hvl.service im /tmp/ Ordner gelandet.

Nach

mv /tmp/hvl.service /etc/systemd/system
systemctl daemon-reload
systemctl enable hvl

Funktioniert dann auch der Autostart.

Also kann der User wohl kein sudo das hvl.service im /tmp/ Ordner landet und nicht in /etc/systemd/system ?

LevelOne2k avatar Jan 21 '20 18:01 LevelOne2k

Ja genau ich schreibe es erst nach /tmp und lasse das File dann via sudo mv nach /etc/systemd/system umziehen...

Ich werde mal nach dem move noch einen Check einbauen ob das File dort gelandet ist.

thkl avatar Jan 21 '20 20:01 thkl

Ok. Bei mir ist es nicht in /etc/systemd/system gelandet sondern in /tmp/ geblieben. Ich habe es dann manuell von /tmp/ nach /etc/systemd/system verschoben.

LevelOne2k avatar Jan 21 '20 21:01 LevelOne2k

ja weil der User, unter dem HVL läuft kein sudo darf. Und != root darf nicht nach /etc/systemd schreiben

thkl avatar Jan 21 '20 21:01 thkl

Okay dann haben wir das Problem. Bekommst du das intern hin?

Edit: Ich denke das liegt aber im moment daran, dass ich HVL auf Debian teste. Wenn jetzt demnächst die verschiedenen Bugs beseitigt sind, dann kommt HVL sowieso wieder auf einen Pi drauf und da sollte der User „pi“ ja Sudo dürfen. Also brauchst du Dir da eigentlich keine Mühe machen.

Ich denke die meisten installieren HVL als Addon auf der CCU oder außerhalb auf einem Pi. Werde da wohl mit Debian gerade die absolute Ausnahme sein.

Edit2: @thkl bei mir war kein sudo installiert. Ein apt-get install sudo hat Abhilfe geschaffen.

Nun landet die hvl.service direkt in /etc/systemd/system

HVL unter Boot Options beim Sytemstart starten aktivieren klappt jetzt also.

Was aber nicht klappt: HVL Start beim Sytemstart deaktivieren wenn ich da drauf klicke, dann bleibt die hvl.service in /etc/systemd/system drin.

LevelOne2k avatar Jan 21 '20 21:01 LevelOne2k