Raspberry: Überwachtes Skript editieren?

OP (Firma: Q3) #4289001
Lesenswert?
• ▲
▼
Ich muss dafür sorgen, dass ein hängendes oder beendetes Python-Skript 
automatisch wieder gestartet wird. Dafür gibts die verschiedensten 
Techniken, da bin ich dabei mich an die verschiedenen Möglichkeiten 
heranzutasten.

ABER:

Was passiert, wenn ich ein solches Skript mal editieren muss? Das wird 
mir doch immer wieder unter den Fingern weg gestartet, oder? Oder kann 
man verhindern, dass ein Skript gestartet wird, so lange es z.B. per 
Nano geöffnet ist?
Gast #4289004
Lesenswert?
• ▲
▼
dein problem ist das du ein "installiertes" laufendes skript editieren 
willst.

editiere eine kopie davon und kopiere sie an die "produktive stelle" im 
dateisystem wenn du mit editieren fertig bist.
auf lange sicht wäre es auch gut wenn du dir versionierungssysteme wie 
git anschauen würdest.
Gast #4289006
Lesenswert?
• ▲
▼
Eigentlich stoppt man vorher den Prozess der sich um das Script kümmert 
und editiert es dann.

VI z.B. legt beim editieren eine Swap- Datei an. Es könnte überwacht 
werden ob diese Datei vorhanden ist.
Gast #4289007
Lesenswert?
• ▲
▼
Frank E. schrieb:
> Ich muss dafür sorgen, dass ein hängendes oder beendetes Python-Skript
> automatisch wieder gestartet wird. Dafür gibts die verschiedensten
> Techniken, da bin ich dabei mich an die verschiedenen Möglichkeiten
> heranzutasten.

das einfachste ist es über systemd zu starten. Dort kannst du einfach 
festlegen was passieren soll wenn es beendet wurden.

Editieren kann du es immer, musst dann nur wenn du fertig bist den 
deamon neu starten.
OP (Firma: Q3) #4289287
Lesenswert?
• ▲
▼
Das Problem hat sich übrigens dahingehend geklärt, dass es gar keines 
ist :-)

Man kann ein laufendes Python-Skript ohne Weiteres z.B. mit Nano 
editieren und speichern. Eine Änderung wird jedoch erst nach Anhalten 
und erneutem Start des Skriptes wirksam. Hängt wohl damit zusammen, dass 
garnicht das Skript direkt ausgeführt wird, sondern seine compilierte 
*.PYC-Version ...
#4289548
Lesenswert?
• ▲
▼
c.m. schrieb:
> dein problem ist das du ein "installiertes" laufendes skript editieren
> willst.

Nein, das ist überhaupt kein Problem, zumindest auf unixoiden Systemen. 
Da darf man ein laufendes Skript editieren oder sogar das Executable zu 
einem laufenden Prozeß ersetzen (dito shared Libraries). Die jeweilige 
Änderung wird natürlich erst nach dem Neustart des entsprechenden 
Skripts/Programms wirksam.

Im Zusammenhang mit einem automatischen Restart (init, systemd oder ein 
"Angel" Prozeß - der Mechanismus ist egal) ist es dann am einfachsten, 
wenn man nach den Änderungen das laufende Programm einfach stoppt und 
vom Automatismus neustarten läßt.
#4290025
Lesenswert?
• ▲
▼
Axel S. schrieb:
> c.m. schrieb:
>> dein problem ist das du ein "installiertes" laufendes skript editieren
>> willst.
>
> Nein, das ist überhaupt kein Problem, zumindest auf unixoiden Systemen.
> Da darf man ein laufendes Skript editieren oder sogar das Executable zu
> einem laufenden Prozeß ersetzen (dito shared Libraries). Die jeweilige
> Änderung wird natürlich erst nach dem Neustart des entsprechenden
> Skripts/Programms wirksam.

Das ist soweit richtig, es mag jedoch sehr unerwünscht sein, gerade 
jetzt die neue Version auszuführen, z.B. weil die alte gerade beendet 
wurde und daher die neue gestartet wird. Dennoch möchte man den 
aktuellen Stand vielleicht mal speichern. Da ist das Editieren einer 
Kopie (ggFs. unter Versionskontrolle) durchaus sinnvoll.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.