Pour ce que cela intéresse, voici une recette permettant de tuer
les threads enfants avec Python
http://sebulba.wikispaces.com/recipe+thread2
Dans l'environnement Windows, c'est particulièrement utile :-)
Dans un de mes projet, je lance plusieurs threads, et bien
que les tâches soit accomplies, Windows met très longtemps sur chacune
de tâches avant de me rendre la main.
Je ne connais pas assez le fonctionnement interne de Python, pour bien comprendre le code.
Mais, ça me semble très intéressant. On devrait, avec ça, gérer plus efficacement les pools de threads.
Sinon, je n'ai pas tes problèmes, "Dans l'environnement Windows". Lorsque mes threads se terminent, ça (Python) répond de suite.
-- @-salutations
Michel Claveau
Salvatore
Bonjour,
En fait, sous Windows il n'y pas de gestions de signaux pouvant être transmis à un thread pour y mettre fin éventuellement. Et Python ne dispose pas en standard de moyen de tuer un thread comme il est possible de le réaliser en Java.
Mon problème actuellement, est que je dois reconnecter un nom important de boite aux lettres dans deux domaines différents. A chaque raccordement, la réponse me parvient aux bout de 15minutes et encore, pourtant la BAL est raccordée, c'est pour cela que je préfère tuer le thread enfant plutot que de l'attendre.
Ceci dit je ne fais pas la fine bouche avec Windows :-) Quotidiennement, je découvre de nouvelles fonctionalités. Dernière en date , wmi en mode ligne de commande : wmic qui révèle des possibilités insoupçonnées. http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp?SD=gn&LN=cs&gssnb=1
PS : Voici un script permettant de gérer des pools de Threads http://www.chrisarndt.de/en/software/python/threadpool/
Cordialement
Salvatore
Salut !
Je ne connais pas assez le fonctionnement interne de Python, pour bien comprendre le code.
Mais, ça me semble très intéressant. On devrait, avec ça, gérer plus efficacement les pools de threads.
Sinon, je n'ai pas tes problèmes, "Dans l'environnement Windows". Lorsque mes threads se terminent, ça (Python) répond de suite.
Bonjour,
En fait, sous Windows il n'y pas de gestions de signaux
pouvant être transmis à un thread pour y mettre fin éventuellement.
Et Python ne dispose pas en standard de moyen de tuer un thread
comme il est possible de le réaliser en Java.
Mon problème actuellement, est que je dois reconnecter un nom
important de boite aux lettres dans deux domaines différents.
A chaque raccordement, la réponse me parvient aux bout de 15minutes et
encore, pourtant la BAL est raccordée, c'est pour cela que je préfère
tuer le thread enfant plutot que de l'attendre.
Ceci dit je ne fais pas la fine bouche avec Windows :-)
Quotidiennement, je découvre de nouvelles fonctionalités.
Dernière en date , wmi en mode ligne de commande : wmic
qui révèle des possibilités insoupçonnées.
http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp?SD=gn&LN=cs&gssnb=1
PS : Voici un script permettant de gérer des pools de Threads
http://www.chrisarndt.de/en/software/python/threadpool/
Cordialement
Salvatore
Salut !
Je ne connais pas assez le fonctionnement interne de Python, pour bien
comprendre le code.
Mais, ça me semble très intéressant. On devrait, avec ça, gérer plus
efficacement les pools de threads.
Sinon, je n'ai pas tes problèmes, "Dans l'environnement Windows".
Lorsque mes threads se terminent, ça (Python) répond de suite.
En fait, sous Windows il n'y pas de gestions de signaux pouvant être transmis à un thread pour y mettre fin éventuellement. Et Python ne dispose pas en standard de moyen de tuer un thread comme il est possible de le réaliser en Java.
Mon problème actuellement, est que je dois reconnecter un nom important de boite aux lettres dans deux domaines différents. A chaque raccordement, la réponse me parvient aux bout de 15minutes et encore, pourtant la BAL est raccordée, c'est pour cela que je préfère tuer le thread enfant plutot que de l'attendre.
Ceci dit je ne fais pas la fine bouche avec Windows :-) Quotidiennement, je découvre de nouvelles fonctionalités. Dernière en date , wmi en mode ligne de commande : wmic qui révèle des possibilités insoupçonnées. http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp?SD=gn&LN=cs&gssnb=1
PS : Voici un script permettant de gérer des pools de Threads http://www.chrisarndt.de/en/software/python/threadpool/
Cordialement
Salvatore
Salut !
Je ne connais pas assez le fonctionnement interne de Python, pour bien comprendre le code.
Mais, ça me semble très intéressant. On devrait, avec ça, gérer plus efficacement les pools de threads.
Sinon, je n'ai pas tes problèmes, "Dans l'environnement Windows". Lorsque mes threads se terminent, ça (Python) répond de suite.
Salvatore
Ceci dit je ne fais pas la fine bouche avec Windows :-) Quotidiennement, je découvre de nouvelles fonctionalités. Dernière en date , wmi en mode ligne de commande : wmic qui révèle des possibilités insoupçonnées. http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp?SD=gn&LN=cs&gssnb=1
Pour appater le chalant :-)
C:>WMIC PROCESS GET name, processid, CommandLine /every:1
Ceci dit je ne fais pas la fine bouche avec Windows :-)
Quotidiennement, je découvre de nouvelles fonctionalités.
Dernière en date , wmi en mode ligne de commande : wmic
qui révèle des possibilités insoupçonnées.
http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp?SD=gn&LN=cs&gssnb=1
Pour appater le chalant :-)
C:>WMIC PROCESS GET name, processid, CommandLine /every:1
Ceci dit je ne fais pas la fine bouche avec Windows :-) Quotidiennement, je découvre de nouvelles fonctionalités. Dernière en date , wmi en mode ligne de commande : wmic qui révèle des possibilités insoupçonnées. http://support.microsoft.com/servicedesks/webcasts/wc072402/listofsampleusage.asp?SD=gn&LN=cs&gssnb=1
Pour appater le chalant :-)
C:>WMIC PROCESS GET name, processid, CommandLine /every:1
Méta-MCI \(MVP\)
Bonsoir !
Si tu veux jouer avec WMI et les processus, le script suivant t'amusera certainement :
import win32com.client wmihandle = win32com.client.GetObject('winmgmts:') process_list = wmihandle.ExecQuery('Select * from Win32_Process') for p in process_list: detail=p.GetObjectText_().split('n') for ligne in detail: if ligne[0:1]!='{' and ligne[0:1]!='}': l=ligne.split('=') if len(l)>=2: item=l[0][1:-1] valeur=l[1][2:-2] print item,"=",valeur print '-'*66
Pour WMIC, je l'utilise quotidiennement, dans des batchs sur serveurs.
Si tu souhaites t'amuser avec WMI en ligne de commande, regarde PowerShell. Il permet, notamment, de naviguer dans WMI, en visualisant toutes les collections (listes d'attributs/propriétés)
Et, pour trouver quelques trucs, à partir du bureau, appuie sur [F1], et, lorsque l'aide sera chargée, cherche avec ces phrases : Nouveaux outils de ligne de commande Références de A à Z de la ligne de commande Vue d'ensemble de l'interpréteur de commandes
A noter que certaines commandes, à l'instar de WMIC, Netsh, Net, etc. sont gigantesques d'options et de possibilités.
Enfin, dernier point, WMI n'est que l'implémentation windows de WBEM (Web-Based Enterprise Management) provenant de DMTF (Distributed Management Task Force), qui existe aussi dans linux, bsd, etc.
@-salutations
Michel Claveau
PS : la ligne de commande du lancement d'un processus ne peut pas être obtenu de cette façon (WMI) pour windows-2000 (et avant) ; cela n'est implémenté qu'à partir d'XP.
Bonsoir !
Si tu veux jouer avec WMI et les processus, le script suivant t'amusera certainement :
import win32com.client
wmihandle = win32com.client.GetObject('winmgmts:')
process_list = wmihandle.ExecQuery('Select * from Win32_Process')
for p in process_list:
detail=p.GetObjectText_().split('n')
for ligne in detail:
if ligne[0:1]!='{' and ligne[0:1]!='}':
l=ligne.split('=')
if len(l)>=2:
item=l[0][1:-1]
valeur=l[1][2:-2]
print item,"=",valeur
print '-'*66
Pour WMIC, je l'utilise quotidiennement, dans des batchs sur serveurs.
Si tu souhaites t'amuser avec WMI en ligne de commande, regarde PowerShell. Il permet, notamment, de
naviguer dans WMI, en visualisant toutes les collections (listes d'attributs/propriétés)
Et, pour trouver quelques trucs, à partir du bureau, appuie sur [F1], et, lorsque l'aide sera
chargée, cherche avec ces phrases :
Nouveaux outils de ligne de commande
Références de A à Z de la ligne de commande
Vue d'ensemble de l'interpréteur de commandes
A noter que certaines commandes, à l'instar de WMIC, Netsh, Net, etc. sont gigantesques d'options
et de possibilités.
Enfin, dernier point, WMI n'est que l'implémentation windows de WBEM (Web-Based Enterprise
Management) provenant de DMTF (Distributed Management Task Force), qui existe aussi dans linux, bsd,
etc.
@-salutations
Michel Claveau
PS : la ligne de commande du lancement d'un processus ne peut pas être obtenu de cette façon (WMI)
pour windows-2000 (et avant) ; cela n'est implémenté qu'à partir d'XP.
Si tu veux jouer avec WMI et les processus, le script suivant t'amusera certainement :
import win32com.client wmihandle = win32com.client.GetObject('winmgmts:') process_list = wmihandle.ExecQuery('Select * from Win32_Process') for p in process_list: detail=p.GetObjectText_().split('n') for ligne in detail: if ligne[0:1]!='{' and ligne[0:1]!='}': l=ligne.split('=') if len(l)>=2: item=l[0][1:-1] valeur=l[1][2:-2] print item,"=",valeur print '-'*66
Pour WMIC, je l'utilise quotidiennement, dans des batchs sur serveurs.
Si tu souhaites t'amuser avec WMI en ligne de commande, regarde PowerShell. Il permet, notamment, de naviguer dans WMI, en visualisant toutes les collections (listes d'attributs/propriétés)
Et, pour trouver quelques trucs, à partir du bureau, appuie sur [F1], et, lorsque l'aide sera chargée, cherche avec ces phrases : Nouveaux outils de ligne de commande Références de A à Z de la ligne de commande Vue d'ensemble de l'interpréteur de commandes
A noter que certaines commandes, à l'instar de WMIC, Netsh, Net, etc. sont gigantesques d'options et de possibilités.
Enfin, dernier point, WMI n'est que l'implémentation windows de WBEM (Web-Based Enterprise Management) provenant de DMTF (Distributed Management Task Force), qui existe aussi dans linux, bsd, etc.
@-salutations
Michel Claveau
PS : la ligne de commande du lancement d'un processus ne peut pas être obtenu de cette façon (WMI) pour windows-2000 (et avant) ; cela n'est implémenté qu'à partir d'XP.
Salvatore
Merci Michel :-)
Bonsoir !
Si tu veux jouer avec WMI et les processus, le script suivant t'amusera certainement :
import win32com.client wmihandle = win32com.client.GetObject('winmgmts:') process_list = wmihandle.ExecQuery('Select * from Win32_Process') for p in process_list: detail=p.GetObjectText_().split('n') for ligne in detail: if ligne[0:1]!='{' and ligne[0:1]!='}': l=ligne.split('=') if len(l)>=2: item=l[0][1:-1] valeur=l[1][2:-2] print item,"=",valeur print '-'*66
Merci Michel :-)
Bonsoir !
Si tu veux jouer avec WMI et les processus, le script suivant t'amusera
certainement :
import win32com.client
wmihandle = win32com.client.GetObject('winmgmts:')
process_list = wmihandle.ExecQuery('Select * from Win32_Process')
for p in process_list:
detail=p.GetObjectText_().split('n')
for ligne in detail:
if ligne[0:1]!='{' and ligne[0:1]!='}':
l=ligne.split('=')
if len(l)>=2:
item=l[0][1:-1]
valeur=l[1][2:-2]
print item,"=",valeur
print '-'*66
Si tu veux jouer avec WMI et les processus, le script suivant t'amusera certainement :
import win32com.client wmihandle = win32com.client.GetObject('winmgmts:') process_list = wmihandle.ExecQuery('Select * from Win32_Process') for p in process_list: detail=p.GetObjectText_().split('n') for ligne in detail: if ligne[0:1]!='{' and ligne[0:1]!='}': l=ligne.split('=') if len(l)>=2: item=l[0][1:-1] valeur=l[1][2:-2] print item,"=",valeur print '-'*66
jean-michel bain-cornu
Bonjour,
A noter que certaines commandes, à l'instar de WMIC, Netsh, Net, etc. sont gigantesques d'options et de possibilités. Perso, je préférerais une commande ps, dispo en natif dans le système de
base, tout simplement. Je me rappelle avoir perdu beaucoup de temps avec WMI, simplement pour avoir une liste de process (la haine). Par exemple, ça ne marche pas, ou pas bien, lorsque le programe s'exécute dans un service. Je dis pas bien parce que ça ne marche pas sur mon pc de dèv, mais je ne suis pas sûr que ça ne marcherait pas si j'installais une verrue x ou y dans l'os, ce que je ne souhaite pas faire.
Enfin, dernier point, WMI n'est que l'implémentation windows de WBEM (Web-Based Enterprise Management) provenant de DMTF (Distributed Management Task Force), qui existe aussi dans linux, bsd, etc. A noter que WMI ne marche pas dans virtualbox (quid de vmware ?), ce qui
pose problème (ça rend une erreur du style 'service not found') à ceux qui utilisent cet environnement.
Si quelqu'un a une solution pour ces deux problèmes (autre chose que porter sous linux, je sais, ça marche, merci), je suis preneur.
A+ jm
PS : xp sp3, python 2.4.4
Bonjour,
A noter que certaines commandes, à l'instar de WMIC, Netsh, Net, etc.
sont gigantesques d'options et de possibilités.
Perso, je préférerais une commande ps, dispo en natif dans le système de
base, tout simplement.
Je me rappelle avoir perdu beaucoup de temps avec WMI, simplement pour
avoir une liste de process (la haine). Par exemple, ça ne marche pas, ou
pas bien, lorsque le programe s'exécute dans un service. Je dis pas bien
parce que ça ne marche pas sur mon pc de dèv, mais je ne suis pas sûr
que ça ne marcherait pas si j'installais une verrue x ou y dans l'os, ce
que je ne souhaite pas faire.
Enfin, dernier point, WMI n'est que l'implémentation windows de WBEM
(Web-Based Enterprise Management) provenant de DMTF (Distributed
Management Task Force), qui existe aussi dans linux, bsd, etc.
A noter que WMI ne marche pas dans virtualbox (quid de vmware ?), ce qui
pose problème (ça rend une erreur du style 'service not found') à ceux
qui utilisent cet environnement.
Si quelqu'un a une solution pour ces deux problèmes (autre chose que
porter sous linux, je sais, ça marche, merci), je suis preneur.
A noter que certaines commandes, à l'instar de WMIC, Netsh, Net, etc. sont gigantesques d'options et de possibilités. Perso, je préférerais une commande ps, dispo en natif dans le système de
base, tout simplement. Je me rappelle avoir perdu beaucoup de temps avec WMI, simplement pour avoir une liste de process (la haine). Par exemple, ça ne marche pas, ou pas bien, lorsque le programe s'exécute dans un service. Je dis pas bien parce que ça ne marche pas sur mon pc de dèv, mais je ne suis pas sûr que ça ne marcherait pas si j'installais une verrue x ou y dans l'os, ce que je ne souhaite pas faire.
Enfin, dernier point, WMI n'est que l'implémentation windows de WBEM (Web-Based Enterprise Management) provenant de DMTF (Distributed Management Task Force), qui existe aussi dans linux, bsd, etc. A noter que WMI ne marche pas dans virtualbox (quid de vmware ?), ce qui
pose problème (ça rend une erreur du style 'service not found') à ceux qui utilisent cet environnement.
Si quelqu'un a une solution pour ces deux problèmes (autre chose que porter sous linux, je sais, ça marche, merci), je suis preneur.
A+ jm
PS : xp sp3, python 2.4.4
Méta-MCI \(MVP\)
Bonjour !
Perso, je préférerais une commande ps, dispo en natif dans le système de base, tout simplement.
WMIC est une commande (utilisable en invite de commande) dispo dans les windows standards (sauf, peut-être, Vista-basic)
Sinon, en standard (sans rien ajouter), tu as aussi, dans windows XP/2003/Vista, les commandes TASKLIST et TASKKILL. Faire Tasklist /? pour voir l'aide.
virtualbox (quid de vmware ?)
Pour les machines virtuelles, désolé, je commence seulement à utiliser Virtual-PC-2007 et Virtual-Servers ; je n'ai pas vraiment d'expériences avec les outils alternatifs. Dans Virtual-PC, cela dépend de l'OS virtuel lancé. Mais, WMI, comme Tasklist, ont l'air de fonctionner chez moi (sur un XP-pro virtuel, au-dessus d'un Vista intégral). Le script Python que j'ai montré tantôt fonctionne aussi.
@-salutations
Michel Claveau
Bonjour !
Perso, je préférerais une commande ps, dispo en natif dans le système de base, tout simplement.
WMIC est une commande (utilisable en invite de commande) dispo dans les windows standards (sauf,
peut-être, Vista-basic)
Sinon, en standard (sans rien ajouter), tu as aussi, dans windows XP/2003/Vista, les commandes
TASKLIST et TASKKILL.
Faire Tasklist /? pour voir l'aide.
virtualbox (quid de vmware ?)
Pour les machines virtuelles, désolé, je commence seulement à utiliser Virtual-PC-2007 et
Virtual-Servers ; je n'ai pas vraiment d'expériences avec les outils alternatifs.
Dans Virtual-PC, cela dépend de l'OS virtuel lancé. Mais, WMI, comme Tasklist, ont l'air de
fonctionner chez moi (sur un XP-pro virtuel, au-dessus d'un Vista intégral). Le script Python que
j'ai montré tantôt fonctionne aussi.
Perso, je préférerais une commande ps, dispo en natif dans le système de base, tout simplement.
WMIC est une commande (utilisable en invite de commande) dispo dans les windows standards (sauf, peut-être, Vista-basic)
Sinon, en standard (sans rien ajouter), tu as aussi, dans windows XP/2003/Vista, les commandes TASKLIST et TASKKILL. Faire Tasklist /? pour voir l'aide.
virtualbox (quid de vmware ?)
Pour les machines virtuelles, désolé, je commence seulement à utiliser Virtual-PC-2007 et Virtual-Servers ; je n'ai pas vraiment d'expériences avec les outils alternatifs. Dans Virtual-PC, cela dépend de l'OS virtuel lancé. Mais, WMI, comme Tasklist, ont l'air de fonctionner chez moi (sur un XP-pro virtuel, au-dessus d'un Vista intégral). Le script Python que j'ai montré tantôt fonctionne aussi.
@-salutations
Michel Claveau
jean-michel bain-cornu
Perso, je préférerais une commande ps, dispo en natif dans le système de base, tout simplement.
WMIC est une commande (utilisable en invite de commande) dispo dans les windows standards (sauf, peut-être, Vista-basic)
Sinon, en standard (sans rien ajouter), tu as aussi, dans windows XP/2003/Vista, les commandes TASKLIST et TASKKILL. Faire Tasklist /? pour voir l'aide.
Et non, je n'ai pas tout ça moi, et mon xp est tout ce qu'il y a de plus standard. Mais bon, ce n'est pas bien grave, ça fait juste un module pas indispensable de mon soft qui ne fonctionne pas, on va pas en faire un plat. C'est juste un peu agaçant, koa.
Perso, je préférerais une commande ps, dispo en natif dans le système
de base, tout simplement.
WMIC est une commande (utilisable en invite de commande) dispo dans les
windows standards (sauf, peut-être, Vista-basic)
Sinon, en standard (sans rien ajouter), tu as aussi, dans windows
XP/2003/Vista, les commandes TASKLIST et TASKKILL.
Faire Tasklist /? pour voir l'aide.
Et non, je n'ai pas tout ça moi, et mon xp est tout ce qu'il y a de plus
standard.
Mais bon, ce n'est pas bien grave, ça fait juste un module pas
indispensable de mon soft qui ne fonctionne pas, on va pas en faire un plat.
C'est juste un peu agaçant, koa.
Perso, je préférerais une commande ps, dispo en natif dans le système de base, tout simplement.
WMIC est une commande (utilisable en invite de commande) dispo dans les windows standards (sauf, peut-être, Vista-basic)
Sinon, en standard (sans rien ajouter), tu as aussi, dans windows XP/2003/Vista, les commandes TASKLIST et TASKKILL. Faire Tasklist /? pour voir l'aide.
Et non, je n'ai pas tout ça moi, et mon xp est tout ce qu'il y a de plus standard. Mais bon, ce n'est pas bien grave, ça fait juste un module pas indispensable de mon soft qui ne fonctionne pas, on va pas en faire un plat. C'est juste un peu agaçant, koa.