Sleep eines threads legt alle PY Scripts lahm

  • 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.

    "Really, I'm not out to destroy Microsoft. That will just be a completely unintentional side effect."

    Linus Benedict Torvalds, 28.9.2003


    Hast Du die Woche schon Deine Raspberry gesichert =O Bei mir tut das raspiBackup automatisch ;)