Sheduler setzt zeitweise aus

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Sheduler setzt zeitweise aus

    Mit Vers. 2.2.2 stürzt seit etwa 3 Wochen der Sheduler des Masters zeitweise ab.

    Jetzt mit neu aufgesetztem SHC Vers. 2.2.4 habe ich immer noch das gleiche Problem.

    Folglich muss einer der Slaves den Sheduler vom Master abschießen.

    Kann man das irgendwie testen?

    Ansonsten nehme ich nacheinander die Slave's vom Netz um den Fehler einzukreisen, bzw. ubdate einen nach dem anderen auf Vers. 2.2.4
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • RE: Sheduler setzt zeitweise aus

    Du könntest auch hingehen und mittels Crontab ein Script ausführen, das prüft, ob die SHC Dienste noch laufen und falls nicht diese startet.


    Das wäre eine Möglichkeit, aber keine saubere Lösung.

    Ich weiß ja nicht wie der Sheduler programmiert ist, aber ich vermute, dass durch die 5 Slave's mit rund 30 Relais, 15 Temperatursensoren, 3 Magnetschalter, 10 Funksteckdosen, 2 PIR, 5 Scripte das System durch das Timing am Rande der der Möglichkeiten ist.

    Der Sheduler am Master unter 2.2.2 war zugegebener Maßen "getunt", nach der kompletten Neuinstallation läuft der Sheduler aber mit default Einstellungen.

    Was mir noch aufgefallen ist, dass nach der Neuinstallation letzte Nacht sich kein einziges Element schalten lies. Nachdem ich die alte SD Karte mit 2.2.2 wieder in den Master steckte lies sich auch hier kein Element mehr schalten. Erst nach einem Reboot aller Slave's ließen sich die Elemente wieder schalten.

    Es besteht also schon eine gewisse Abhängigkeit zwischen dem Master und den Slave's.

    Nicht zu vergessen, das am Master eine Picam hängt, wo bei erkanntem klingeln ein Bild versandt wird und an zwei Slave's ebenfalls, wo bei Bewegung ein Bild versandt wird.

    Alles wird vom SHC über den Sheduler gesteuert. Mit fortschreiten des Ausbaus ist mir auch aufgefallen, dass die Zeit zwischen auslösen einer Funksteckdose und dem tatsächlichem schalten mittlerweile rund 3 bis 4 Sekunden liegen. Bei den Relais ist die response Zeit schneller.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • RE: Sheduler setzt zeitweise aus

    Ja, der Sheduler ist nicht der agilste. Das liegt aber nich am SHC direkt sondern das der Sheduler viel aufgaben übernimmt die mit externen Programmen zu tun haben und das kann langsam sein.
    Das zu umgehen ist in PHP nur schwierig möglich das dies das klassische Einsatzgebiet von Threads ist fie es in PHP nicht gibt. Es gibt zwar ein derartiges Erweiterungsmodul für PHP aber das hab ich unter ARM nicht zum laufen gebracht.
  • RE: Sheduler setzt zeitweise aus

    Ich möchte noch mal auf die Ausfälle des Sheduler zurück kommen. Eine Zeitlang dachte ich, dass das Problem von einem der Slave's kommen könnte. Und hatte auch einen in Verdacht. Dem ist aber anscheinend nichts so. Ich hatte auch schon die Vermutung, das er hauptsächlich nach einem Zeitgesteuerten Vorgang (z.B. Sonnenuntergang) stehen bleibt. Das hat sich aber auch nicht bestätigt.

    rgarcia hatte vorgeschlagen mittels cronjob zu prüfen, ob er noch läuft und ihn gegebenenfalls damit neu zu starten.

    Dies scheint mir im Augenblick, nachdem er zwei Tage ohne murren lief und heute wieder steht, doch eine praktikable Lösung vorerst zu sein.

    Meine Frage ist, wie müsste ich das anstellen, das z.B. alle 30 Minuten überprüft wird, ob der Sheduler noch läuft und ihn gegebenenfalls neu startet.

    Eine vielleicht noch bessere Möglichkeit wäre (den Aufwand kann ich nicht abschätzen) das automatisch, wenn der SHC gemeldet bekommt "Sheduler läuft nicht" diesen dann wieder startet und den Ausfall in eine Art Log Datei protokolliert.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • RE: Sheduler setzt zeitweise aus

    Also ich mache das zurzeit wie folgt:

    Shell-Script

    1. #!/bin/bash
    2. service=shcd
    3. if (( $(ps -ef | grep -v grep | grep app=shc | wc -l) < 3 ))
    4. then
    5. /etc/init.d/$service stop
    6. sleep 2m
    7. /etc/init.d/$service start
    8. else
    9. echo "$service is running!!"
    10. fi
    Display All


    Das ganze dann einfach regelmäßig über einen cronjob ausführen lassen und gut ist.

    PS: Ausführberechtigungen mittel chmod a+x DATEINAME nicht vergessen

    The post was edited 1 time, last by rgarcia ().

  • RE: Sheduler setzt zeitweise aus

    Ich bin aktuell am überlegen ob ich den Sheduler nicht Grundlegend umstricke und die Prozessverwaltung in JAVA umsetze. Mit PHP kommt man da an die Grenzse des machbaren, da PHP keine Threads hat.

    Zuerst hatte ich ünerlegt ob ich den Sheduler komplett in Java Implementiere, der Aufwand dafür ist aber so enorm das dies nicht umsetzbar ist. Jetzt ist mein Gedanke einen JAVA Controller zu schreiben der die einzelnen Sheduler Funktionen in eigenen Prozessen laufen lässt und dabei auch überprüft ob die noch laufen und ggf. automatisch neu Startet und nur eine Log mit Meldungen füllt. Auch dafür sind größere änderungen nötig, aber nich so viel wie alles in JAVA zu portieren.
  • RE: Sheduler setzt zeitweise aus

    @garcia

    Danke für das script.
    Ich hoffe mein cronjob stimmt so. Das Script soll zur 48. Minute jede Stunde ausgeführt werden.

    Dann habe ich gleich noch einen reboot für jeden Tag um 04:10 Uhr eingebaut.

    48 * * * * /sbin/shedulerwatch.sh
    10 04 * * * /sbin/reboot
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • RE: Sheduler setzt zeitweise aus

    Das passt rmjspa ;)
    Ich hab das ganze bei mir wie folgt:

    */8 * * * * /home/pi/pilight-check
    */10 * * * * /home/pi/shc-check

    Das checkt alle 8 Minuten ob pilight noch läuft und alle 10 ob shc noch läuft.
    Pilight prüfe ich mit folgendem Skript

    Shell-Script

    1. #!/bin/bash
    2. service=pilight
    3. if (( $(ps -ef | grep -v grep | grep pilight-daemon | wc -l) > 0 ))
    4. then
    5. echo "$service is running!!!"
    6. else
    7. /etc/init.d/$service start
    8. fi
  • RE: Sheduler setzt zeitweise aus

    Seit 2.2.4 hab ich auch Probleme mit dem Sheduler und mit redis. Ca alle 2 Stunden bleibt der Sh stehen und kurz darauf
    kommen nur noch Fehlermeldungen von der redis???php.
    Das ist jetzt, wo's kalt wird enorm ärgerlich, da ich meine Heizung auch mit shc ansteuere.
    Das ganze SHC ist komplett neu aufgesetzt auf jessie.

    Ich dachte schon, dass es daran liegt, dass ich den raspi von einer 1GB sd boote und das Betriebssystem auf einer ssd läuft.
    Aber auch auf einer neuen 16GB sd hab ich das gleiche Problem.

    Am Banana Pro (auch mit 32GB ssd) isses auch das selbe.
    Lebe deine Träume als ein Leben lang nur zu träumen!
  • RE: Sheduler setzt zeitweise aus

    Ich habe mir vorerst mit der Lösung von rgarcia (ein paar posts weiter oben) geholfen.

    Es ist zwar keine endgültige Lösung, aber auf diese Weise läuft das System seit etwas mehr als einer Woche.

    Zuzüglich mache ich noch einen reboot jede Nacht um 04:10 Uhr.

    Wie gesagt, es löst zwar nicht das ursächliche Problem, hilft aber im Moment.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • RE: Sheduler setzt zeitweise aus

    Wenn Du das Script von rgarcia oben nimmst und das:

    48 * * * * /sbin/shedulerwatch.sh
    10 04 * * * /sbin/reboot

    in die crontab einträgst, wird jede Stunde in der 48. Minute der Service neu gestartet. und jeden Tag um 04:10 Uhr ein reboot durchgeführt.
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • RE: Sheduler setzt zeitweise aus

    Du musst erst das script mit nano erstellen und gibst ihm einen Namen deiner Wahl.

    Dort hinein kopierst Du das script von rgarcia.

    Das jetzt fertige script kopierst Du nach /sbin/

    In dem Beispiel heißt es: shedulerwatch.sh

    und dann fügst Du nur noch die Zeilen mit crontab -e in die crontab ein.

    48 * * * * /sbin/shedulerwatch.sh
    10 04 * * * /sbin/reboot
    SHC Master B2+ WLAN sowie 1 Slave B2+, 2 Slave B+ und 2 Slave Raspi B. 5x Pi Cam; Imac mit OSX El Capitan; Iphone 6 plus; Ipad mini; Lenovo Android Tablet.
  • RE: Sheduler setzt zeitweise aus

    rmjspa wrote:


    Du musst erst das script mit nano erstellen und gibst ihm einen Namen deiner Wahl.

    Dort hinein kopierst Du das script von rgarcia.

    Das jetzt fertige script kopierst Du nach /sbin/

    In dem Beispiel heißt es: shedulerwatch.sh

    und dann fügst Du nur noch die Zeilen mit crontab -e in die crontab ein.

    48 * * * * /sbin/shedulerwatch.sh
    10 04 * * * /sbin/reboot


    So, habe jetzt folgendes gemacht.

    In "sudo nano shedulerwatch.sh" das Script reinkopiert.
    Dann nach /sbin/ mit "sudo cp shedulerwatch.sh /sbin"
    kopiert (shedulerwatch.sh) ist dort jetzt sichtbar.

    Jetzt möchte ich noch
    48 * * * * /sbin/shedulerwatch.sh
    10 04 * * * /sbin/reboot
    mit crontab -e nach crontab kopieren,
    und bräuchte dazu bitte nochmal Hilfe.
    Kann besser Hardware als Software !

    The post was edited 1 time, last by premo ().

  • RE: Sheduler setzt zeitweise aus

    Einfach mit su in den Benutzer wechseln (als root sudo su), der die Scripts zeitgesteuert ausführen soll und dann mit dem crontab -e machen. Falls eine Abfrage kommt, welchen Editor du haben willst, nimm Nano.
    Schau einfach mal bei Wikipedia unter crontab nach. Da findest du die Bedeutung der einzelnen Stellen.
    Wenn das aber so stimmt, wie du das oben schon angegeben hast, dann muss ein Eintrag in jede Zeile und dann einfach Nano schließen. Es sollte dann ne Ausgabe kommen "New Crontab installed"