Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 23/03/2024, à 13:11

lebossejames

python principale Thread ne se stoppe pas

Bonjour,

Je souhaiterais que mon bash script puisse stopper quand il souhaite mon script python de manière normal, ainsi je passe par un fichier .txt où si la valeur Close est présent, arrrête mon .py, cependant je constate que le thread a été arrêter mais pas le thread principal (présent dans les process).

from time import sleep
import sys
import os
import threading
from _thread import interrupt_main
 
from timed_count import timed_count
 
class MyThreadReadUpdate (threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self._running = True        
         
 
    def terminate(self):
        self._running = False
         
    def run(self):
        while self._running:
 
            #print("MyThreadReadUpdate is running")  
            if os.path.exists(sys.argv[2]):                      
                f3 = open(sys.argv[2], "r+")
                valueToDo=f3.readline().rstrip()
                #print(valueToDo+"/")
                if (valueToDo == "Close" ):
                    print("Exiting program is asked by user")
                     
                    sleep(2)
                    f3.seek(0);
                    f3.write("Nothing")
                    f3.close()
                    sys.exit(0)
 
                else:
                    #print("run always this program") 
                    f3.close()
            #time.sleep(5) 
 
 
readUpdate_Thread = MyThreadReadUpdate()
readUpdate_Thread.daemon = True    
readUpdate_Thread.start()
 
 
while True:
     print("loop")
     sleep(3)

Sauriez-vous me dire comment faire svp?

Merci.

Hors ligne

#2 Le 23/03/2024, à 13:23

iznobe

Re : python principale Thread ne se stoppe pas

Bonjour , je ne sais pas faire , mais vu que tu fais une fonction :

def run(self):

de la meme maniere tu n' as qu' a creer une fonction stop :

def stop(self):

qui " ferme " tout ce que tu as " ouvert " avant tout simplement .




EDIT : ca à l' air d' etre deja le cas en fait vu :

def terminate(self):
        self._running = False

du coup c' est un bug , je dirais , il manque du code pour tout bien fermer correctement .

C' est toi qui a écris ce code ?

il manque plein d' autres fichiers sûrement ... si y a un bug , le mieux est d' en informer la paersonne qui a ecrit ce code ou la societé d ' ou provient ce code .

Dernière modification par iznobe (Le 23/03/2024, à 13:29)


retour utilisable de commande
MSI Z490A-pro , i7 10700 , 32 GB RAM .

Hors ligne

#3 Le 23/03/2024, à 18:26

lebossejames

Re : python principale Thread ne se stoppe pas

Oui, je me suis inspiré sur une portion de code.

Hors ligne