Restart eines Python Sciptes

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Peter1977
User
Beiträge: 85
Registriert: Mittwoch 4. September 2013, 14:59

Hallo,

Ist es möglich das sich ein Python Skript neu startet?

mfg Peter
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

neu starten nach am Crash / Absturz oder neu starten im Sinne von das Skript zum Zeitpunkt X neu starten, auch, wenn es noch läuft?

Und welches OS benutzt du?

Gruß, noisefloor
Peter1977
User
Beiträge: 85
Registriert: Mittwoch 4. September 2013, 14:59

Hallo,

Nicht nach einem Absturz und auch nicht nach Einem Zeitpunkt

Im Programm gibt es einem Button wenn ich darauf klicke wird das Programm Beendet und neu Startet.

BS ist Raspbian bzw. ein Unixoides könnte aber auch mal eher unwahrscheinlich Windows sein.

mfg Peter
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

In dem Fall macht es IMHO Sinn, einen weiteren Interpreter zu starten. Also in etwa so, wenn man es ein bißchen ausarbeitet:

Code: Alles auswählen

import subprocess
import sys

def call_python(script_name, *script_args):
    args = [sys.excutable, script_name]
    args.extend(script_args)
    return subprocess.call(args)

if __name__ == '__main__':
    call_python('/pfad/zum/skript.py')
sys.executable ist der Pfad zum aktuell laufenden Python-Interpreter.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@Peter1977: warum willst Du das Programm neu starten? Das ist ein ungewöhnlicher Button. Das würde ja bedeuten, dass man irgendetwas so kaputt machen kann, dass nur ein Neustart hilft.
Terahnee
User
Beiträge: 13
Registriert: Dienstag 8. August 2017, 13:48

Ich vermute mal, dass Peter eine Art Kiosk erreichen möchte.
Peter1977
User
Beiträge: 85
Registriert: Mittwoch 4. September 2013, 14:59

Hallo,

Das Programm läuft auf einen Raspberry mit Touchscreen im Vollbildmodus und automatischen Start
damit ich nicht bei einer Script Änderung in die Konsole muss.
Einfach mal einen Button Einfügen mit dem ich das ganze neu starten kann.

Danke

mfg Peter
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

@Peter1977: Du willst also das Skript nicht neu starten, sondern ein neues Skript starten.

Dafür würde ich ein kleines Bash-Skript nehmen, dass einen Restart macht, wenn das Pythonskript mit ExitCode 1 beendet wurde.
[codebox=bash file=Unbenannt.bsh]
while True; do
python script.py
if [ $? -eq 1 ]; then break; fi
done
[/code]
Antworten