Sleep eines threads legt alle PY Scripts lahm

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo zusammen,

    eine Frage bezüglich threading im Python.

    Ich habe ein C Programm welches einen Wert vom 433mhz Empfänger an Python_1 Script übergibt.
    Dies wird mithilfe von Startparametern realisiert: Starte Script 1 mit Parameter (./script1.py 1337)

    Im Script1.py wird der Startparameter übernommen und diverse Bedingunen geprüft.
    Hier wird dann ein weiteres Python_2 Script gestartet falls erfüllt.

    In diesem Python_2 Script wird via threading und sleep eine Pause eingelegt. Im Anschluss wird eine Bedingung überprüft und mit If / Else verarbeitet. Das ganze funktioniert wirklich klasse bis auf eine kleinigkeit.

    Wärend Script_2 in Pause läuft, kann mein Script_1 keine weiteren Werte empfangen und schläft sozusagen mit.

    Script1 startet script2 via:

    Code
    os.system("sudo ./script2.py")


    In Script2 wird sleep so realisiert:


    Der aufmerksame Leser merkt nun das es sich um eine Alarmanlage handelt.
    Hier sollen einzelne Sensoren erst nach einer Verzögerung von X Sekunden den Aussenalarm aktivieren , falls man doch mal vergisst die Anlage zu entschärfen... Im Prinzip muss also das C Programm weiterhin in der Lage sein die Alarmanlage zu entschärfen, wärenddessen der Timer abläuft. Nach XX Sekunden wird der Status der Alarmanlage abgefragt und entsprechend gehandelt.

  • os.system ruft das zweite Script synchron auf und es wird erst wieder weitergemacht in Script 1 wenn Script 2 terminiert. Da Du offensichtlich nicht zwischen den Programmen kommunizieren willst würde ich einfach nur ein & ans Ende von os.system stellen. Dann läuft Script2 asnychron im Background und es wird mit Script1 fortgefahren.

Jetzt mitmachen!

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