os.popen

Le
pasdespam-stealth
Bonjour,

J'utilise os.popen pour exécuter des commande SSH dans une appli
python/gtk, malheureusement lorsque la commande ne répond pas (ou pas
rapidement) l'appli se fige
dans l'attente d'une réponse.

Est-il possible d'exécuter des commandes shell en détachant le processus
de l'application principale ?

Merci d'avance

Ex:
info = os.popen("ssh -i %s root@%s ""cp /etc/sec/%s.route
/etc/sec/%s%s.route""" % (ROOTKEY,IP,i,i,date))

os.popen("scp -i %s %s/%s/etc/sec/%s.route root@%s:/etc/sec/ " %
(ROOTKEY,STOCKRULES,i,i,IP))

os.popen("ssh -i %s root@%s ""/etc/sec/%s.route""" % (ROOTKEY,IP,i))


--
Posté via http://www.webatou.net/
Usenet dans votre navigateur !
Complaints-To: abuse@webatou.net
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Do Re Mi chel La Si Do
Le #419712
Bonjour !

Regarde le module subprocess. Il est intégré à Python 2.4, mais existe, chez
Effbot, pour Python 2.3.
Certains l'utilisent pour gérer du time-out (mais je n'ai pas regardé ce
point).
Autre aspect intéressant : alors que, avec les popen, les buffers
stdin/stdout était assez limités (8 ko à 32 ko), avec subprocess, j'ai
piloté des commandes retournant plus d' 1 Mo de données.

@-salutations
--
Michel Claveau
fraca7
Le #419711

Est-il possible d'exécuter des commandes shell en détachant le processus
de l'application principale ?


Quelque chose comme os.spawn ? Il ne faut pas s'inquiéter du réultat de
la commande, cela dit...

Franck
Le #419704
J'utilise os.popen pour exécuter des commande SSH dans une appli
python/gtk, malheureusement lorsque la commande ne répond pas (ou pas
rapidement) l'appli se fige dans l'attente d'une réponse.


Pour piloter des programmes interactifs, j'utiliser habituellement
pexpect (http://pexpect.sourceforge.net) qui gère les timeout et
facilite beaucoup la capture des données avec des regexps.

Franck.

Poster une réponse
Anonyme