Beliebige Config automatisch Neu laden

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Aloha,

    mich Beschäftigt seit einigen Tagen folgende Frage: Ist es möglich per Cron eine beliebige Config neu zu laden?

    Ausgangssituation ist folgende:

    Ich lasse seit einigen Monaten einen MagigMirror auf einem 4er Pi laufen. Dort werden mir 3 Kameras angezeigt was auch wunderbar Funktioniert.

    Das Problem an der Sache ist nur, das die Kameras in Motioneye laufen und Motioneye als Container.

    Jeden früh um 6Uhr wird der Container wegen Backup gestoppt, gesichert und dann wieder gestartet. Der MagicMirror bekommt das mit und zeigt mir deshalb die Kameras nicht mehr an.

    Ich muss mich per Console auf dem MM einloggen, die Config per nano aufrufen, speichern und fertig. Dann werden auch die Kameras wieder Angezeigt.

    Da ich mich aber nicht jedesmal auf dem Pi einloggen möchte stellt sich mir die Frage ob man das nicht Automatisieren kann per Cron.

    Ja ich könnte den Pi per Cron neustarten lassen aber das wollte ich halt vermeiden.

    So nun sind die Experten gefragt (ich bin defenitiv keiner)

    Danke...

    P.s. Aufruf in der Console sudo nano MagicMirror/config/config.js (rest siehe oben)

    ~*~ Es tat NiVEA als beim ersten Mal ~*~

    - Das Leben ist Entscheidungen...Der Tod ist Entschieden -

  • Einige Anwendungen lesen ihre Config neu ein, wenn man ihnen ein kill -HUP schickt. Alternativ versuche mal, ob bei dir nicht auch ein (cron-gesteuertes) /usr/bin/touch /MagicMirror/config/config.js statt des nano-Aufrufs reicht.

    Wenn du nichts zu sagen hast, sag einfach nichts.

    Einmal editiert, zuletzt von llutz (26. Januar 2023 um 11:06) aus folgendem Grund: Leading slash vergessen

  • @llutz

    Danke für das Beispiel und werde ich mal Testen. Cron ist Eingetragen auf 6.30Uhr morgen früh.

    Gebe dann Bescheid ob es Funktioniert hat und die Kameras zu sehen sind nach dem Backup/Neustart des Containers.

    ~*~ Es tat NiVEA als beim ersten Mal ~*~

    - Das Leben ist Entscheidungen...Der Tod ist Entschieden -

  • Jeden früh um 6Uhr wird der Container wegen Backup gestoppt, gesichert und dann wieder gestartet. Der MagicMirror bekommt das mit und zeigt mir deshalb die Kameras nicht mehr an.

    Dann ist an der MM-Konfiguration etwas nicht in Ordnung.

    Denn wenn der Container neu gestartet wird, sollten auch die Kameras erkannt werden.

    Du könntest den MM auch neu starten.

    (Oder natürlich die Config neu einlesen. Doch hierzu sollte das MM-Programm auf den passenden Befehl auch sauber reagieren. Das Erkennen vom 'kill -HUP $ProzessID" ist nichts, was ein Programm automatisch macht, diese Funktion muss im Programm definiert werden)

    Computer ..... grrrrrr

  • Rasp-Berlin

    Ich glaube Du verstehst da was Falsch. Die Config von MM ist schon Richtig aber :

    Nicht der MM läuft als Container, sondern MotioEye ist der Container der Frühs um 6uhr neu gestartet wird.

    Der MM bekommt nur das Bild von MotionEye.

    ~*~ Es tat NiVEA als beim ersten Mal ~*~

    - Das Leben ist Entscheidungen...Der Tod ist Entschieden -

    Einmal editiert, zuletzt von DeltaBlue (25. Januar 2023 um 00:59) aus folgendem Grund: Sinn eines Satzes geordnet

  • Alternativ versuche mal, ob bei dir nicht auch ein (cron-gesteuertes) /usr/bin/touch MagicMirror/config/config.js statt des nano-Aufrufs reicht.

    Bericht: ich habe das mal Probiert und in der Crontab eigetragen, aber scheint nicht zu reichen bzw. zu Funktionieren.

    Im Log ist zwar folgendes zu finden aber ohne das die Kameras dann wieder angezeigt werden:

    Code
    Jan 26 06:30:01 MagicMirror CRON[6836]: (root) CMD (   /usr/bin/touch MagicMirror/config/config.js)

    ~*~ Es tat NiVEA als beim ersten Mal ~*~

    - Das Leben ist Entscheidungen...Der Tod ist Entschieden -

  • Im Log ist zwar folgendes zu finden aber ohne das die Kameras dann wieder angezeigt werden:

    Code
    Jan 26 06:30:01 MagicMirror CRON[6836]: (root) CMD (   /usr/bin/touch MagicMirror/config/config.js)

    Versuch mal mit dem absoluten Pfad (für diese "config.js"-Datei), in der zuständigen crontab.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Versuch mal mit dem absoluten Pfad (für diese "config.js"-Datei), in der zuständigen crontab.

    Werde ich ausprobieren. Ich lass das ganze auch mal um 18uhr ausführen, aber nicht als Root sondern als Pi.

    Mal schauen was dann passiert bzw im Syslog steht.

    ~*~ Es tat NiVEA als beim ersten Mal ~*~

    - Das Leben ist Entscheidungen...Der Tod ist Entschieden -

  • ..., aber nicht als Root sondern als Pi.

    BTW: Hat der user pi auch Schreibrechte für die "config.js"-Datei?

    Welche crontab benutzt Du jetzt und welche crontab wirst Du für den user pi benutzen?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • BTW: Hat der user pi auch Schreibrechte für die "config.js"-Datei?

    Welche crontab benutzt Du jetzt und welche crontab wirst Du für den user pi benutzen?

    Super, an die Schreibrechte hatte ich garnicht gedacht. Der hat natürlich keine. Mhhm dann sollte ich das wohl vergessen.

    Dann eben als root nochmal um 18uhr.

    Nutzen tue ich die in /etc/crontab , nicht die mit dem Aufruf per crontab -e ( was wohl die für den gerade angemeldeten User ist wenn ich das Richtig verstanden habe ).

    ~*~ Es tat NiVEA als beim ersten Mal ~*~

    - Das Leben ist Entscheidungen...Der Tod ist Entschieden -

  • /usr/bin/touch MagicMirror/config/config.js

    ist kein absoluter Pfad, kann es sein, dass root die Crons in /root ausführt?

    Da Fragst Du Sachen, ich bin froh das ich bis jetzt das ganze ohne direkte Hilfe in den Griff bekommen habe was solche Sachen betrifft.

    Wenn Du noch so nett bist und mir verraten tust wie ich das Prüfen kann, tue ich das natürlich.

    Ein Reboot ginge zwar auch aber das wäre nur die aller letzte Option. (Zerstört mir die Statistik der Onlinzeit vom Pi, da wieder von 0 gezählt wird)

    P.s. habe es jetzt mal in der Crontab so eingetragen.

    * 18 * * * root /usr/bin/touch /home/pi/MagicMirror/config/config.js]

    ~*~ Es tat NiVEA als beim ersten Mal ~*~

    - Das Leben ist Entscheidungen...Der Tod ist Entschieden -

  • P.s. habe es jetzt mal in der Crontab so eingetragen.

    * 18 * * * root /usr/bin/touch /home/pi/MagicMirror/config/config.js]

    BTW: Wie oft willst Du den Befehl, um bzw. ab 18 Uhr ausführen lassen? So wird er ab 18 Uhr 60 mal (zu jeder Minute) ausgeführt.

    Für Punkt 18:00 Uhr wäre so:

    Code
    0 18 * * *

    richtig.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • Jetzt bin ich verwirrt. Laut Crontab Beispiel ist doch die Reihenfolge folgende:

    Code
    Example of job definition:
    .---------------- minute (0 - 59)
    |  .------------- hour (0 - 23)
    |  |  .---------- day of month (1 - 31)
    |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
    |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
    |  |  |  |  |
    *  *  *  *  * user-name command to be executed
    * 18  *  *  *   root    /usr/bin/touch /home/pi/MagicMirror/config/config.js 

    Und das sollte doch stimmen. Wie so sollte jetzt der Cron ab 18Uhr 60mal ausgeführt werden? :conf:

    P.S. Blau ist Orginal in der Crontab.....Grün mein Eintrag...

    ~*~ Es tat NiVEA als beim ersten Mal ~*~

    - Das Leben ist Entscheidungen...Der Tod ist Entschieden -

  • Ok Seite in Gemerkt. Aber jetzt zum Verständniss: ist das eine Linuxsache oder Allgemein?

    Denn so kann man doch nicht "volle" Stunden nutzen, wenn man 01 18 * * * angeben muss und anstatt * 18 * * *.

    ~*~ Es tat NiVEA als beim ersten Mal ~*~

    - Das Leben ist Entscheidungen...Der Tod ist Entschieden -

  • Aber jetzt zum Verständniss: ist das eine Linuxsache oder Allgemein?

    Allgemein.

    Denn so kann man doch nicht "volle" Stunden nutzen, wenn man 01 18 * * * angeben muss und anstatt * 18 * * *.

    Warum willst Du "01" benutzen, wenn es zur vollen Stunde sein soll?

    EDIT:

    BTW: Wenn Du das mit cron nicht verstehst, kannst Du auch eine timer-unit, für die Ausführung zur vollen Stunde (18:00 Uhr), benutzen.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!