Wenn Sie an einem Ort eine Himbeere haben und ein Python-Skript "für immer" ausführen müssen (ein Jahr, vielleicht zwei, ohne dass ich vor Ort bin), wie oft sollte ich es neu starten? Ich weiß, dass die Leute sie für ein Jahr am Leben halten, aber ich habe ein einfaches Skript geschrieben, das es zu gegebener Zeit neu starten kann. Himbeere führt das Python-Skript automatisch beim Booten aus.
19
Antworten:
Ich habe ein paar Pis, die meinen Amateurfunk-Repeater und mein Bewässerungssystem betreiben - realistisch gesehen, starte ich sie alle 6 Monate neu, um Sicherheitsupdates oder andere "Wartungsgründe" zu erhalten. Ich habe jedoch keine Probleme gesehen, bei denen ein Neustart erforderlich war, um den Betrieb aufrechtzuerhalten.
quelle
In Bezug auf die Hardware ist der einzige Grund, warum Sie jemals ein ARMHF-y-Board neu starten sollten, Firmware-Änderungen, notwendige Änderungen am ROM oder möglicherweise neue Geräte, die beim Booten vorhanden sein müssen.
Wenn Sie beispielsweise einen Treiber oder ein metallnahes Kernelmodul und ein Gerät hinzufügen, das diesen Treiber implementiert, ist wahrscheinlich ein Neustart erforderlich, um der CPU und dem Kernelspeicher-Mapper die Änderung mitzuteilen. Sie können den Linux-Kernel ohne Neustart aktualisieren .
In Bezug auf die Software sind alle für den Pi verfügbaren Hauptcomputerumgebungen * nix-ähnlich 1 , da sie True Unix ™ sind oder Linux oder ein Linux-Derivat verwenden und daher (U) nix-y sind.
Unix und seine Derivate sind vom Bootloader bis zum Userland so konzipiert, dass sie vollständig skalierbar, portabel und zuverlässig sind. Sie wurden für Server entwickelt, die nie oder fast nie einem Hard-Reset unterzogen werden (dh vollständig heruntergefahren und von Grund auf neu gestartet werden), und in geringerem Maße für eingebettete Geräte, genau wie Raspberry Pis. Folglich gelten diese Ziele tatsächlich für den Pi.
Dies bedeutet in der Praxis, dass Sie Ihren Pi (oder Ihren * nix-Desktop-PC) im Grunde genommen nie neu starten müssen.
1 Ignorieren Sie für einen Moment die Microsoft Windows 10: Internet Of Things Edition für den Pi, die ich gerne als Scherz bezeichnen würde, aber nicht.
quelle
Bei eingebetteten "Run forever" -Systemen sind keine regelmäßigen Neustarts erforderlich. Es ist üblich, einen Hardware-Watchdog-Timer zu verwenden, um einen Systemstillstand zu erkennen und einen Neustart durchzuführen. Ich glaube, der Watchdog-Timer ist wertvoller als ein regelmäßiger Neustart (der Neustart funktioniert wahrscheinlich nicht, wenn das System hängt).
quelle
Ich stimme den vorher geschriebenen Dingen zu. In einer theoretischen Situation mit exzellent geschriebener Software mit perfekter Fehlerbehandlung, ohne Speicherverluste ... ist kein Neustart erforderlich.
Ich habe mehr als 50 PIs (alle PI 3) vor Ort, und einige werden wöchentlich neu gestartet, andere nie ... Fast alle PIs werden im Kioskmodus verwendet, entweder zum Abspielen von Videos, Anzeigen einer Website, Ausführen von Skripten, ... Benutzererfahrung ist mir wichtig und ich kann es mir nicht leisten, dass ein PI ausfällt. Auf allen ist ein Watchdog installiert.
Auf meiner Website benutze ich den folgenden Ansatz (dies basiert nur auf meiner eigenen Erfahrung, ohne wissenschaftlichen Hintergrund :-))
PIs, die Server (Apache, SIP, ...) ausführen und nur mit einem Ethernetkabel verbunden sind: Ich starte sie nie neu, einige von ihnen haben eine Betriebszeit von fast 2 Jahren (tatsächlich habe ich diese nicht aktualisiert)!
im Gegenteil, PIs, die Videoloops ausführen (mit OMXPlayer): Ich starte diese Geräte wöchentlich neu. Ich habe versucht, sie überhaupt nicht neu zu starten, aber ich habe festgestellt, dass das Video gelegentlich hängen bleibt, ohne dass der Watchdog es bemerkt. Man würde also ein Standbild auf dem Bildschirm sehen. Ich würde sagen, dass in einem Zeitraum von einem Monat für jedes der Geräte eine Wahrscheinlichkeit von ungefähr 50% bestand, dass das Video einmal einfriert. Um diese Risiken zu minimieren, habe ich beschlossen, einmal pro Woche einen Neustart durchzuführen, und die Ergebnisse sind akzeptabel Bisher hatte ich nach einem Jahr wöchentlicher Neustarts nur 2 Einfrierungen (Bild einfrieren, kein PI-Einfrieren). Natürlich würde ich diese auch gerne beseitigen, aber dies ist ein anderes Thema. Für diejenigen, ist es mir egal, wie sich ein Neustart auf die SD-Karte auswirkt, da es in diesem Fall einfach darum geht, eine neue SD-Karte einzulegen und die Vorlage mit dem richtigen Video zu aktualisieren.
PIs, die sich im Client-Modus befinden und webbasierte Benutzerinhalte (mit Chromium, KWeb, ...) mit Benutzerinteraktion anzeigen (hauptsächlich Touchscreens und / oder Schaltflächen): Ich starte diese jeden Monat neu und hatte bisher keine Probleme. Vielleicht war es nicht nötig, sie neu zu starten ... aber da diese Geräte Skripte (Java, Node.js) ausführen und Eingaben von anderen Geräten erhalten, dachte ich, dass irgendwann ein Neustart erforderlich sein könnte, und entschied mich für einen monatlichen Neustart neustarten.
Mir ist klar, dass dies keine direkte Antwort auf Ihre Frage ist, aber ich wollte nur einige persönliche Erfahrungen teilen, damit Sie - zusammen mit den anderen Antworten - beurteilen können, welcher Ansatz für Ihr Projekt am besten geeignet ist.
quelle