Bin mir nicht sicher, ob meine Anforderung auf Linux Ebene oder innerhalb eines Python Scripts behandelt werden sollte.
Auf einem Raspberry soll ein Python Script ausgeführt werden, das die GPIOs bearbeitet. Einmal gestartet läuft es ohne Unterbrechung bis durch User ein Abbruch erzwungen werden kann.
Um Fehlfunktionen zu vermeiden darf dieses Script nicht mehrmals gestartet werden. Also, sollte/kann innerhalb des Scripts direkt "vermieden" das eine zweite Instanz ausgeführt werden kann.
Oder ist es besser das auf Linux Ebene abzufangen?
python script soll nicht mehrmals ausgeführt werden
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Dafür gibt es viele Möglichkeiten z.B.:
Datei anlegen, beim sauberen Beenden wieder löschen. Existiert Datei, läuft der Prozess, ein weiteres Programm startet nicht. Problem: Stürzt Programm ab, bleibt die Datei und du musst dir für diesen Fall etwas überlegen.
Oder wieder die Datei und in die Datei die PID schreiben, dann kann das zweite Script prüfen, ob ein Programm mit dieser PID läuft.
Oder etwas extrem Einfaches, du öffnest einen Port, ein weiteres Programm kann nicht denselben Port öffnen, solange das erste Programm diesen Port hält.
Es gibt sicherlich noch mehr Lösungen, die mit Sicherheit hier im Forum bereits behandelt wurden. Ich habe allerdings auch keine Beiträge auf die Schnelle gefunden. Die Suchbegriffe dafür sind etwas schwierig zu wählen.
Datei anlegen, beim sauberen Beenden wieder löschen. Existiert Datei, läuft der Prozess, ein weiteres Programm startet nicht. Problem: Stürzt Programm ab, bleibt die Datei und du musst dir für diesen Fall etwas überlegen.
Oder wieder die Datei und in die Datei die PID schreiben, dann kann das zweite Script prüfen, ob ein Programm mit dieser PID läuft.
Oder etwas extrem Einfaches, du öffnest einen Port, ein weiteres Programm kann nicht denselben Port öffnen, solange das erste Programm diesen Port hält.
Es gibt sicherlich noch mehr Lösungen, die mit Sicherheit hier im Forum bereits behandelt wurden. Ich habe allerdings auch keine Beiträge auf die Schnelle gefunden. Die Suchbegriffe dafür sind etwas schwierig zu wählen.
Wobei man so etwas nach Möglichkeit nicht selber machen sollte. Wenn man bei PID-Files zum Beispiel nicht aufpasst kann man Race-Conditions haben. Es gibt Module für so etwas, zum Beispiel `pid`.
Hört sich so an als wäre es die Lösung .. mal schauen.BlackJack hat geschrieben:... Es gibt Module für so etwas, zum Beispiel `pid`.
Kannst du zu deiner Fußzeile mehr sagen .. gute Verweise?
Python und CoffeeScript hört sich spannend an .. bei CoffeeScript denke ich eher an JavaScriptCoffeeScript documentation about the existential operator
@gNeandr: Die Fusszeile ist einfach meine Signatur für diesen Monat. Die Signatur kann man in den persönlichen Einstellungen festlegen und die wird automatisch unter jeden Beitrag gesetzt. Ich setze da in der Regel irgendein Zitat das ich interessant oder lustig fand. Diesen Monat nicht von einer Person, sondern aus der CoffeeScript-Dokumentation.