perl killen und fhem automatissch anstarten - ginge das irgendwie?

Begonnen von the ratman, 24 Juni 2017, 16:06:08

Vorheriges Thema - Nächstes Thema

the ratman

aufgrund meiner zeitenweisen (über)last-probleme von perl hab ich mir einen workaraound ausgedacht -  ich jetzt einfach perl killen und fhem restarten.
der erste teil is mir schon mal klar, aber wie könnte man mit totem perl fhem automatisch anwerfen?

( [ratOhaus_SM:cpu_temp] >= 80 and [ratOhaus_SM:userCpu] >= 20 )

(
   set ratOtab_AMAD ttsMSG achtung übertemeperatur im ratOhaus mit [ratOhaus_SM:cpu_temp] grad - fhem wird neu gestartet;
)
(
   {system "at now +15 seconds -f ~/fhemstartscript.sh"};
   {system "at now +5 seconds -f ~/fhemstopscript.sh"};
)


------------------
wait 600,10


fhemstopscript.shsudo /etc/init.d/fhem stop
sudo killall perl
könnte man hier zw. den befehlen im script ne pause einfügen? nur zur sicherheit.

fhemstartscript.shsudo /etc/init.d/fhem start
→do↑p!dnʇs↓shit←

amenomade

#1
Ich verstehe nicht, was du machen willst aber wenn Du all perl kills, hast Du nix mehr, und kannst nix mehr ansteuern...

Du könnest vielleicht ZUERST ein system atd/at einrichten, und ERST DANN killen.

man atd
ATD(8)                      System Manager's Manual                     ATD(8)

NAME
       atd - run jobs queued for later execution

SYNOPSIS
       atd [-l load_avg] [-b batch_interval] [-d] [-f] [-s]

at now +10 seconds -f ~/fhemstartscript.sh

at lässt sich über "sudo apt-get install at" isntallieren. Atd ist nw. schon installiert.
Ich halte aber das ganze für gefährlich...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

#2
oh, thx für deine idee
nun - ich erklärs mal genauer ... nicht, dass mich wieder jeder missversteht *g*

ich hab bei zeiten probleme mit der auslastung von perl. immer mal wieder rennt perl auf vollast und somit steigt die temp. bei meinem raspi mal gerne recht schnell an.
da mir bis jetzt niemand wirklich beim eigentlichen problem helfen konnte ( https://forum.fhem.de/index.php/topic,72628.0.html ), such ich eben nach möglichkeiten ruhig schlafen zu können, ohne am nächsten tag einen rauchenden plastikhaufen als server zu haben (<-- dramatisation).

das einzige, das bisher (bis jetzt 1 mal) gefunzt hat (ich muß ja leider immer warten, bis perl wieder mal zu spinnen geruht), war eben perl ganz abzuschießen und dann fhem zu starten. nicht mal ein stromlos machen des raspi hatte geholfen (nur, falls die frage aufkommen sollte)
drum dachte ich eben in meiner naivität: die 2 befehle funzen, wenn ich die also automatisieren kann, dann hab ich weniger angstschweiß auf der stirn und fhem rennt (fast) durch.

d.h.:
ich brauche eine möglichkeit, die mir fhem flexibel restarten kann, da ich ja nicht weiß, wann wieder mal perl (oder was auch immer) spinnt.
der vorgang wäre ja wie folgt:
1) fhem oder das system stellt fest, dass die prozi-last mehrere minuten über 20% und die temp. über 80° liegt.
2) es wird ein temporärer cronjob angelegt, der mir fhem wieder startet - sagen wir --> derzeitige uhrzeit + 10 sek. vom feststellen des problems weg.
3) vor den 10 sek. wird natürlich noch perl gekilled.
4) fhem rennt wieder und die last is weg (zumindest hoffe ich, dass das nicht nur 1 mal gefunzt hat *g*).

nachdem ich von linux keine bis gar keine ahnung habe, allerdings wenigstens langsam bei fhem den total-dau-satus verlasse und zum forgeschrittenen dau aufsteige, dachte ich halt, das sollte sich mit fhem lösen lassen, weil ich das ganze dann wenigstens ansatzweise im griff hab, ohne euch alle 5 min hier im forum auf die nerven zu gehen.

in meinem doif würde dein at also wie folgt aussehen?

{system "at now +10 seconds -f sudo /etc/init.d/fhem start"};
oder muss ich mir da unbedingt ein script für basteln und wie müsste das dann aussehen?


nachtrag:
ich hab jetzt mal at installiert
was meinst den eig. mit gefährlich?
→do↑p!dnʇs↓shit←

amenomade

Gefährlich, falls Du andere Prozessen hast, die Perl nutzen.
Auch "killen" führt zu Instabilität des Systems. Irgendwann wird dein fhem nicht mehr starten können, da ein state nicht gespeichert worden ist o.ä.

Also... du kümmerst dich um die Symptomen aber nicht um die Krankheit... Na gut, ich hätte andere Alternativen: was mit eine Wasserlöschanlage mit Sprinkler über den Raspi? ;)

Blöde Frage: wenn perl spinnt, kannst Du trotzdem fhem runterfahren (stop, nicht kill)? Das wäre schon besser.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

amenomade

-f sudo /etc/init.d/fhem start
kann nicht funktionieren.
-f option => Skript Datei. Du musst ein fhemstartscript.sh haben, mit beliebigem Inhalt (z.B. sudo /etc/init.d/fhem start).
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

#5
ZitatBlöde Frage: wenn perl spinnt, kannst Du trotzdem fhem runterfahren (stop, nicht kill)? Das wäre schon besser.
ja.
fhem rennt ja sogar, nur die weboberfläche wird sau langsam. alles andere rennt überhaupt wie wenn nix wäre.
dann müsste man ja nur noch den befehl zum stoppen von fhem vor den kill legen. dann sollte man da auch sicher sein. fhem selber nur zu stoppen und zu starten reicht leider nicht.
sprich: erst mal dein at, dann fhem stop und hintenan noch perl kill. paar sekunden zw. stop und kill sollten, denke ich reichen, oder?

ZitatDu musst ein fhemstartscript.sh haben, mit beliebigem Inhalt (z.B. sudo /etc/init.d/fhem start).
na das schaff sogar ich *g*
das .sh leg ich einfahc in fhem rein, denk ich?

ZitatAlso... du kümmerst dich um die Symptomen aber nicht um die Krankheit...
ich weiß und das tut sogar mir weh.
aber wenn mir hier schon keiner helfen kann, werd ichs selber auch nicht schaffen. da nehm ich dann lieber wenigstens ne notlösung.

ZitatNa gut, ich hätte andere Alternativen: was mit eine Wasserlöschanlage mit Sprinkler über den Raspi? ;)
DAS is DIEEEEEE idee, mein großer meister *g*
nur eines dazu: DU kommst vorbei und erklärst das meiner holden, nachdem ich definitiv in einen bunker mit mind. 3 atombomensicheren türen sitze. zur info: die frau hat ein nudelholz aus edelstahl mit dornen dran.



basteln wir mal - in der hoffnung, dass damian das sieht und nicht gleich lachen muß:

in den 1. beitrag kopiert, damits nicht unüberischtlich wird
→do↑p!dnʇs↓shit←

amenomade

Kannst Du mal versuchen
attr Fembotter disable 1
attr Fembotter channelGuide 0
?
Und gucken, ob deine CPU immer noch spinnt.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

#7
hat ich auch schon mal probiert und hat auch nix gebracht. vor allem - die channel-guide ist bei mir aus, weil die mir zu langsam is.
wenns das nächste mal spinnt (kann also mal ne woche dauern), werd ichs aber nochmal probieren.
hatte das letzte mal so gut wie alle multimedia-dinger aus - der dlna-renderer steht ja auch hoch auf meiner verdachtsliste.
btw - channelguide 0 ist bei dem modul nicht vorgesehen. der autor meint in solchen fällen, das es ja das selbe wäre, wie das attribut zu löschen.
→do↑p!dnʇs↓shit←

amenomade

Wenn das spinnt ist es schon zu spät. Ich meinte jetzt deaktivieren, und gucken, ob das Problem immer noch passiert.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

is schon klar - nur kann ich (besser miene schlechtere hälfte) dann meinen tv ned steuern und mit "pech" muß ich tage bis wochen warten, bis das ding wieder spinnt.
anhand des laufenden tv's werden auch andere dinge geregelt - das krieg ich ohne dem modul nie auf die reihe
→do↑p!dnʇs↓shit←

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

the ratman

*g* jo, braucht nur batterien. hab sogar die über-drüber-fb mit schütteln und zeigen *g*.
das problem sind div. aktionen, - wie z.b. gute-nacht-schaltungen - die den tv als trigger nehmen.

aber mal ganz dumm gefragt: nehmen ma mal an, das problem tritt wieder auf.
ich mach das fembotter-device aus stop/starte fhem. dann müsste ja der tv aussen vor sein.
nachdem ein stop/start bis jetzt nie was gebracht hat, sollte ich also dann sehen, obs der tv is. geht fhem dann wieder, wars der tv, gehts immer noch nicht, war ers nicht.
stimmt die milchmädchenrechnung?
→do↑p!dnʇs↓shit←

amenomade

Ja, ok, kannst so probieren. Nicht vergessen: "save" nachdem du die Attributes gesetzt hast, sonst sind die nach dem shutdown restart wieder da...
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Per

Habe das jetzt mehrfach geschaut, finde aber das DOIF-Problem nicht. :-X

Zitat von: the ratman am 24 Juni 2017, 21:21:45nicht mal ein stromlos machen des raspi hatte geholfen
Wenn das nicht reicht, wie soll dann kill, welches ja viel weniger macht, erfolgreich sein?!

Evtl. wäre ja ein zweiter Server was für dich. Dann kannst du schauen, ob Fhem oder jemand anderes der Übeltäter ist. Dann müsstest du evtl. auch Perl nicht killen.

Noch eine kleine Bitte: streu doch ab und an ein paar Großbuchstaben an der richtigen Stelle ein, das ist kein Chat und es liest sich echt leichter. Und je leichter du es uns machst, umso besser können wir dir helfen ;).

the ratman

@per
das doif hat auch kein problem - das hab ich eigentlich hier nur rein gestellt, dass damian oder einer der anderen doif-künstler mir die funktionalität bestätigt. bei solcherlei automatisierten eingriffen "ins system" frag ich dann doch lieber, bevor ich n nicht funzendes doif hab und mich trotzdem sicher fühl.
dass wir hier jetzt wegen meines eigentlichen problems weiter quasseln, hat sich halt so ergeben. eig. sollt das alles in einen anderen fred stehen.

Wenn das nicht reicht, wie soll dann kill, welches ja viel weniger macht, erfolgreich sein?!fragst das mich?
ich hab keinen schimmer. ich weiß nur folgendes:
x mal fhem mit stop/start versucht --> kein erfolg
x mal den raspi rebootet --> kein erfolg
x mal den raspi ausgesteckt --> kein erfolg
1 mal bis jetzt perl gekilled --> hat gefunzt (hoffentlich wars nicht wieder ein zufall - hatte ich schon mal)

btw - weißt du eig. was großbuchstaben kosten? sowas kann ich mir ned leisten.

@amenomade
jo, das "save" wird wieder lustig, wenn das ding unter volllast rennt *g* da kannst du schon mal alt werden beim warten drauf. aber ich kenn das jetzt ja schon ...
→do↑p!dnʇs↓shit←