Bon merci sa commence a mieux marcher.
J'ai donc lancer ma commande avec popen2 et je récupère le file descriptor
j'utilise après un pattern écouteur ( si mes souvenir en design pattern son juste)
je crée un deuxième thread qui lit continuellement le fichier output de ma commande. En effet si je ne me trompe pas le "pseudo-fichier" n'a pas de caractère EOF par conséquent quand mon thread qui lit aura rattraper celui qui écrit il va attendre et ne quittera jamais sa fonction readline().
donc pour le moment sa donne ceci :
import thread
tu = output, #création d'un tuple
th = thread.start_new_thread(viewlog, tu ) #lancement du thread de lecture
def viewlog( output): #thread qui lit
lin =output.readline()
while lin:
print lin
lin= output.readline()
Mon problème est maintenant au niveau du thread de lecture qui doit écrire sur mon terminal . Il n'écrit pas de manière continue il écrit lorsque j'appuie sur une touche. j'aimerais bien arrêter l'écoute sur l'appui d'une touche. je ne comprend pas pourquoi mon thread de lecture écrit de cette façon. avez-vous une explication? Que pensez-vous de ma méthode?
Je sais que je suis étreint de réaliser un truc un peu tordu. Mes explications sont sûrement confuse et je m'en excuse. dite vous que je veux réalisé un espèce de gestionnaire de démon capable de lancer/écouter/fermer un démon. *
Merci tout le monde pour l'aide que vous m'avez déjà apporté.
[^] # Sa avance
Posté par ferveuol . En réponse au message Popen 2/3/4 utilisation. Évalué à 0.
J'ai donc lancer ma commande avec popen2 et je récupère le file descriptor
j'utilise après un pattern écouteur ( si mes souvenir en design pattern son juste)
je crée un deuxième thread qui lit continuellement le fichier output de ma commande. En effet si je ne me trompe pas le "pseudo-fichier" n'a pas de caractère EOF par conséquent quand mon thread qui lit aura rattraper celui qui écrit il va attendre et ne quittera jamais sa fonction readline().
donc pour le moment sa donne ceci :
def run(self):
input, output=os.popen2('cd '+self.path+ ' && '+ self.path+'/'+self.name) #cmd a ecouter
input.close()
return output
def log(self, output):
import thread
tu = output, #création d'un tuple
th = thread.start_new_thread(viewlog, tu ) #lancement du thread de lecture
def viewlog( output): #thread qui lit
lin =output.readline()
while lin:
print lin
lin= output.readline()
Mon problème est maintenant au niveau du thread de lecture qui doit écrire sur mon terminal . Il n'écrit pas de manière continue il écrit lorsque j'appuie sur une touche. j'aimerais bien arrêter l'écoute sur l'appui d'une touche. je ne comprend pas pourquoi mon thread de lecture écrit de cette façon. avez-vous une explication? Que pensez-vous de ma méthode?
Je sais que je suis étreint de réaliser un truc un peu tordu. Mes explications sont sûrement confuse et je m'en excuse. dite vous que je veux réalisé un espèce de gestionnaire de démon capable de lancer/écouter/fermer un démon. *
Merci tout le monde pour l'aide que vous m'avez déjà apporté.