Lancement d'une tâche séparé
Char Snipeur
Messages postés
10112
Statut
Contributeur
-
georges97 Messages postés 20429 Date d'inscription Statut Contributeur Dernière intervention -
georges97 Messages postés 20429 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai une application graphique dont le but est de configurer puis de lancer une suite d'action qui dure longtemps. Mais j'aimerai que l'action se lance en concurence de la fenêtre. J'ai dans un premier temps penser au thread. ça fonctionne, mais si je ferme ma fenêtre, le thread s'arrête.
J'ai alors tenté le fork, mais j'ai plein d'erreurs du serveur X qui apparaissent.
Auriez vous une idée de comment je pourrai faire ? Merci.
J'ai une application graphique dont le but est de configurer puis de lancer une suite d'action qui dure longtemps. Mais j'aimerai que l'action se lance en concurence de la fenêtre. J'ai dans un premier temps penser au thread. ça fonctionne, mais si je ferme ma fenêtre, le thread s'arrête.
J'ai alors tenté le fork, mais j'ai plein d'erreurs du serveur X qui apparaissent.
Auriez vous une idée de comment je pourrai faire ? Merci.
A voir également:
- Lancement d'une tâche séparé
- Deplacer barre de tache windows 11 - Guide
- Raccourci gestionnaire de tache - Guide
- Gestionnaire de tache windows 11 - Guide
- Lancer une application au démarrage windows 10 - Guide
- Barre de tâche windows 10 - Guide
3 réponses
Bonjour!
Sous linux (gnome), tu peux lancer un processus qui ne dépendra pas du prog parent en faisant simplement:
gnome-terminal -e "/chemin/vers/programme/nom_du_programme.py"
Si ça peut aider...
Sous linux (gnome), tu peux lancer un processus qui ne dépendra pas du prog parent en faisant simplement:
gnome-terminal -e "/chemin/vers/programme/nom_du_programme.py"
Si ça peut aider...
Merci, mais ce n'est pas ça mon problème.
Je suis au sein d'un programme Tkinter, et je fait :
et lorsque je ferme ma fenêtre Tk, le thread se termine.
Je suis au sein d'un programme Tkinter, et je fait :
Threading.thread(target=fonction_longue,args=(arg1,aerg2)).start()
et lorsque je ferme ma fenêtre Tk, le thread se termine.
Bonjour, désolé de ne pas avoir su répondre à ta question, mais après avoir testé un bout de code,
J'ai beau fermer la fenêtre, le thread fonctionne toujours:
J'ai beau fermer la fenêtre, le thread fonctionne toujours:
Tu pourrais peut-être montrer un bout de code plus grand, pour situer le problème...
#!/usr/bin/python
# -*- codding: utf-8 -*-
from Tkinter import Tk,Button
from threading import Thread
def th1():
a=0
while 1:
print a
a+=1
th=Thread(target=th1)
fe=Tk()
button=Button(fe,text="texte",command=th.start).pack()
fe.mainloop()
Merci de ton aide.
J'ai peut être une idée. Je déclare mon thread à l'intérieur de ma fonction Tk. Est-ce que le ramasse miette ne pourrait pas passer par là ?
Mais mon erreur est peut être d'avoir fermé ma connexion sans avoir fermer ma fenêtre. Du coup. Je ne sais pas trop ce que fait le programme lorsque le serveur X est éteint.
Note, pour lancer de manière indépendante au terminal, j'utilise disown.
J'ai peut être une idée. Je déclare mon thread à l'intérieur de ma fonction Tk. Est-ce que le ramasse miette ne pourrait pas passer par là ?
Mais mon erreur est peut être d'avoir fermé ma connexion sans avoir fermer ma fenêtre. Du coup. Je ne sais pas trop ce que fait le programme lorsque le serveur X est éteint.
Note, pour lancer de manière indépendante au terminal, j'utilise disown.
Bonjour!
Je ne pense pas que le ramasse-miette y soit pour quelque chose: j'ai fais quelques testes, et quoi que je fasse, le thread n'est jamais détruit.
En effet, si tu ferme serveur x alors qu'une fenêtre tu as peut-être une erreur de linux, qui arrête ton programme, et donc ton thread.
Et quand je parlais du terminal en parallèle, je voulais dire qu'à la place de faire une fonction dans ton programme, tu pouvais créer un second programme que tu lancerais en parallèle. Et dans ce cas, ton 2nd programme ne serait pas stoppé, même en cas de problème avec X.
Sinon, j'avoue que j'suis pommé! Pourquoi tu fermes serveur X?
Tu bosses sur un serveur personnel?
Je ne pense pas que le ramasse-miette y soit pour quelque chose: j'ai fais quelques testes, et quoi que je fasse, le thread n'est jamais détruit.
En effet, si tu ferme serveur x alors qu'une fenêtre tu as peut-être une erreur de linux, qui arrête ton programme, et donc ton thread.
Et quand je parlais du terminal en parallèle, je voulais dire qu'à la place de faire une fonction dans ton programme, tu pouvais créer un second programme que tu lancerais en parallèle. Et dans ce cas, ton 2nd programme ne serait pas stoppé, même en cas de problème avec X.
Sinon, j'avoue que j'suis pommé! Pourquoi tu fermes serveur X?
Tu bosses sur un serveur personnel?
non, au taf. J'ai un PC perso que j'éteins tout les soir (ou presque, windows oblige) je me connecte aux serveur de calcul via une session X. Je lance mes calculs pour la nuit ou le WE et je ferme tout (donc X).
Je ne comprends pas bien l'intérêt de lancer les deux programme en parallèle, je vais avoir des problèmes de communication entre les deux.
Bon, il faut que j'analyse le problème alors. Les petits tests que je fait fonctionnent bien. Mais dès que je passe "en production" ça fonctionne jusqu'à ce que je me déco.
Je ne comprends pas bien l'intérêt de lancer les deux programme en parallèle, je vais avoir des problèmes de communication entre les deux.
Bon, il faut que j'analyse le problème alors. Les petits tests que je fait fonctionnent bien. Mais dès que je passe "en production" ça fonctionne jusqu'à ce que je me déco.
Bonjour,
Je ne sais pas si cela peut résoudre votre problème, mais je suis tombé par hasard sur ce tuto :
http://gnuniverse.free.fr/?p=277
Cordialement
Je ne sais pas si cela peut résoudre votre problème, mais je suis tombé par hasard sur ce tuto :
http://gnuniverse.free.fr/?p=277
Cordialement