FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: choetzu am 26 Dezember 2018, 12:04:56

Titel: Script bei Start starten
Beitrag von: choetzu am 26 Dezember 2018, 12:04:56
Guten Mittag

Bei mir läuft ein Script aus https://forum.fhem.de/index.php/topic,45783.msg385316.html#msg385316. Wenn ich heute FHEM neu starte, dann muss ich immer im Teminal mit /opt/fhem/owl2fhem das Skript starten und den Terminal offen lassen.

Gibt es eine saubere und v.a. einfache Möglichkeit bei Fhem Neustart das Script auszuführen und auf Wunsch auch wiederr zu beenden?

Die Dokumentationen im Internet sind für mich etwas zu hohe Schule und ich möchte auch nicht, dass ich durch eine Fehlmanipulation Fhem zum abstürzen bringe.

Danke für die Hilfe.

Lg c
Titel: Antw:Script bei Start starten
Beitrag von: Otto123 am 26 Dezember 2018, 12:39:44
Hi,

die erste Quick&Dirty Lösung wäre, dass Programm einfach mittels "/opt/fhem/owl2fhem "auf der FHEM Kommandozeile zu starten.
Funktioniert das? Ich habe nämlich nicht gesehen, ob das Programm spezielle Rechte braucht. Unter welchem User startest Du es im Terminal?

Allerdings kenne ich das Programm nicht - vielleicht hat auch einer schon eine fertige Lösung. Dienst wäre sicher am elegantesten...

Gruß  Otto
Titel: Antw:Script bei Start starten
Beitrag von: MadMax-FHEM am 26 Dezember 2018, 12:43:33
Wenn das dann geht und das Script tut was du willst, dann:

define nAutoScriptStart notify global:INITIALIZED "/opt/fhem/owl2fhem "

Bzw. halt das Kommando dann so anpassen wie es tut/notwendig ist...

Damit wird es ausgeführt, wenn fhem startet...

Gruß, Joachim
Titel: Antw:Script bei Start starten
Beitrag von: Otto123 am 26 Dezember 2018, 12:46:42
@Joachim: Wir zwei wieder  ;D  ;D ;D
Titel: Antw:Script bei Start starten
Beitrag von: choetzu am 26 Dezember 2018, 13:06:29
Hallo Joachim und Otto,

danke, das klappt. Und so einfach ;) Es funktioniert. Die Readings werden fleissig gefüllt, auch wenn nix geloggt wird.

Und wie kann ich das Script wieder stoppen ? ;) Geht das auch so einfach?

Lg c
Titel: Antw:Script bei Start starten
Beitrag von: MadMax-FHEM am 26 Dezember 2018, 13:16:29
@Otto: jep! ;)

Hmmm vielleicht nicht ganz so einfach...
...also außer du hast etwas im Skript vorgesehen es "sauber" und "einfach" zu beenden...

Ansonsten (harter Weg):

"sudo killall owl2fhem"

Wobei dazu halt der User fhem einen Eintrag in der sudoers benötigt, dass er eben das Kommando als "root" ausführen darf...
...oder (neuerdings) eben eine "eigene Datei" unter: /etc/sudoers.d/

Dort sollte (bei einem PI mit Raspbian) bereits eine für den User 'pi' liegen...

Gruß, Joachim
Titel: Antw:Script bei Start starten
Beitrag von: Otto123 am 26 Dezember 2018, 13:28:25
Nicht ganz, die Prozesse die fhem gestartet hat, kann fhem doch auch beenden!?

Es wird nix geloggt? Loggt das Programm denn? Dann sollte das im FHEM Logfile stehen - nicht so schön ...

Edit: So eventuell?
"pkill -9 -f owl2fhem"
Titel: Antw:Script bei Start starten
Beitrag von: MadMax-FHEM am 26 Dezember 2018, 14:00:19
Hmmm hab ich noch nie probiert, ob der User der startet auch "killen" darf ;)

Wieder was gelernt...

EDIT: wobei die Option -f (laut man pkill) aber den gesamten Pfad will/fordert:

Zitat
-f, --full
              The pattern is normally only matched against the process name.  When -f is set, the full command line is used.

Oder verstehe ich da was falsch!?

Danke, Joachim
Titel: Antw:Script bei Start starten
Beitrag von: Otto123 am 26 Dezember 2018, 15:02:28
Ich: Copy und paste ohne Kopf  ::) -> Ich habe den Befehl einfach probiert und er ging.

Dann habe ich jetzt mal folgendes probiert.
Erst starte ich in einem zweiten Fenster ein "python ring.py" und dann:
pi@raspib:~ $ ps -ax |grep ring
1793 pts/0    R+     0:06 python ring.py
1798 pts/1    S+     0:00 grep --color=auto ring
2490 ?        S    270:10 python ring1.py
pi@raspib:~ $ pkill -9 ring
pi@raspib:~ $ ps -ax |grep ring
1793 pts/0    R+     0:12 python ring.py
1801 pts/1    S+     0:00 grep --color=auto ring
2490 ?        S    270:10 python ring1.py
pi@raspib:~ $ pkill -9 -f ring
pkill: killing pid 2490 failed: Die Operation ist nicht erlaubt
pi@raspib:~ $ ps -ax |grep ring
1804 pts/1    S+     0:00 grep --color=auto ring
2490 ?        S    270:10 python ring1.py
pi@raspib:~ $

Wie man sieht: ohne -f passiert nichts, mit -f versucht er alle ring zu killen und darf nur einen.

Gruß Otto
Titel: Antw:Script bei Start starten
Beitrag von: Otto123 am 26 Dezember 2018, 15:08:10
Im Wiki Ubuntu steht dann dies:
Zitat-f   Normalerweise wird nur der Prozessname nach Suchbegriff durchsucht. Durch die Angabe von -f wird die gesamte Kommandozeile durchsucht, also auch die übergebenen Parameter.
;D

Das erklärt es dann wieder :)

Gruß Otto
Titel: Antw:Script bei Start starten
Beitrag von: choetzu am 26 Dezember 2018, 21:21:43
Hallo und guten Abend, das funktioniert beides bestens. Ganz herzlichen Dank.

Habs probiert es muss jedoch jeweils wie folgt gemacht werden (in der Kommandozeile)

{system("pkill -9 -f owl2fhem &")}
resp.
{system("sudo killall owl2fhem &")}


nochmals danke.. Das ging relativ schlank und einfach... Das notify ist auch installiert..
Titel: Antw:Script bei Start starten
Beitrag von: Otto123 am 26 Dezember 2018, 21:48:51
pkill funktioniert bei mir auch so - ohne system
"pkill -9 -f ring"
Titel: Antw:Script bei Start starten
Beitrag von: choetzu am 27 Dezember 2018, 18:13:09
Zitat von: MadMax-FHEM am 26 Dezember 2018, 12:43:33
Wenn das dann geht und das Script tut was du willst, dann:

define nAutoScriptStart notify global:INITIALIZED "/opt/fhem/owl2fhem "

Bzw. halt das Kommando dann so anpassen wie es tut/notwendig ist...

Damit wird es ausgeführt, wenn fhem startet...

Gruß, Joachim

Hmm, das klappt bei mir nicht. Ich habe folgendes gemacht

define AutoScriptStart_notify notify global:INITIALIZED "/opt/fhem/owl2fhem";;set Arlo_Restart_Dummy push

Nach einem Neustart passiert nix. Auch der zweite Befehl geht nicht... Im Logfile kommt nix. Und beim Event-Monitor auch nicht. Ich sehe nirgends ein gobal:INITIALIZED... mein global hat "no definition".. Liegt es evtl. daran?
Titel: Antw:Script bei Start starten
Beitrag von: Otto123 am 27 Dezember 2018, 19:09:40
Hi,

die no definition steht bei mir auch :)

Aber wo wir wieder beim Thema sind (Mein notify geht nicht) :D https://wiki.fhem.de/wiki/Notify#Anweisung
Wenn Du deine Anweisung mal  komplett durch so einen {Log ...} Eintrag ersetzt? Wird der Event getriggert?

Gruß Otto
Titel: Antw:Script bei Start starten
Beitrag von: choetzu am 28 Dezember 2018, 10:21:44
danke, somit konnte ich den Uebeltäter überstellen. Offensichtlich lag es an den doppelten ";;".. Jetzt hats geklappt.

Was anderes: Wie kann ich folgenden Ablauf am besten darstellen?

global:INITIALIZED "sudo ip link set can0 type can bitrate 20000";sleep 5;"sudo ifconfig can0 up"

Das scheint nicht zu gehen, obschon das notify ausgelöst wird. Muss man das besser in ein file.sh machen und so auslösen? Hmm, da käme ich schon an meine Grenzen.

lg c
Titel: Antw:Script bei Start starten
Beitrag von: Otto123 am 28 Dezember 2018, 11:01:41
Moin,

darf dein User fhem denn sudo? Also geht der Befehl "sudo ip link set can0 type can bitrate 20000" in der FHEM Kommandozeile?

Hier meine Notiz (https://heinz-otto.blogspot.com/2017/08/raspberry-ausschalten-mit-fhem.html) zum Thema User fhem und sudo

Gruß Otto
Titel: Antw:Script bei Start starten
Beitrag von: choetzu am 28 Dezember 2018, 17:17:52
Zitat von: Otto123 am 28 Dezember 2018, 11:01:41
Moin,

darf dein User fhem denn sudo? Also geht der Befehl "sudo ip link set can0 type can bitrate 20000" in der FHEM Kommandozeile?

Hier meine Notiz (https://heinz-otto.blogspot.com/2017/08/raspberry-ausschalten-mit-fhem.html) zum Thema User fhem und sudo

Gruß Otto

Ottooo, du Fuchs!! ;) Wer braucht schon den Weihnachtsmann oder das Christkind, wenn es Ottoo gibt? ;) Herzlichen Dank. Das wars...

Ich habe es aber im /etc/sudoers eingetragen und nicht eine separate datei unter /etc/sudoers.d/ gemacht. Was ist da eigentlich der Unterschied?

Nochmals danke. es klappt!!

Lg c
Titel: Antw:Script bei Start starten
Beitrag von: Otto123 am 28 Dezember 2018, 17:25:18
Tom gibs zu, Du sitzt irgendwo in den Schweizer Bergen und bist eingeschneit und weißt nicht was Du so anstellen könntest weil Du nicht rauskommst ;D

Der Unterschied? Es ist die modernere Variante! In der Auswirkung ist sicher kein Unterschied, ich finde es so besser und übersichtlicher. Aber das ist wie immer auch Geschmacksache.

Gruß Otto
Titel: Antw:Script bei Start starten
Beitrag von: MadMax-FHEM am 28 Dezember 2018, 17:28:50
Es steht zu beginn in der sudoers (oder auf jeden Fall da drin):

Durch zukünftige Updates kann nicht garantiert werden, dass die Datei nicht doch mal "überbügelt" wird.
Daher die Empfehlung eine Datei unter /etc/sudoers.d/ anzulegen, da das Verzeichnis bzw. Dateien darin davon nicht betroffen sind...

Gruß, Joachim
Titel: Antw:Script bei Start starten
Beitrag von: choetzu am 28 Dezember 2018, 17:33:57
Zitat von: Otto123 am 28 Dezember 2018, 17:25:18
Tom gibs zu, Du sitzt irgendwo in den Schweizer Bergen und bist eingeschneit und weißt nicht was Du so anstellen könntest weil Du nicht rauskommst ;D

nicht ganz, Otto. Da ich im Januar verreise und mein Rücken gewaltig knackst, liegen Skiferien z.Z. nicht drin... Aber dafür war ich heute 15 Minuten von mir entfernt Kräfte tanken;) Wir Schweizer nennen es Hügel mit Bergfeeling.. ;) Hauptsache über dem Nebel... Und seit ich FHEM habe, kann es einem nicht langweilig werden.

Joachim und Otto, nochmals danke..