IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

recupérer le Pid d'un programme lancer avec os.system()


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de GoldenEyes
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut recupérer le Pid d'un programme lancer avec os.system()
    Bonjour tout le monde ,

    j'utilise "python 2.5" sous "fedora core 9" et j'aimerai exécuter un programme et puis continuer le reste du code.

    j'ai utilisé os.system(ma_commande)
    mais j'ai pas pu exécuter le reste de mon programme il faut que je faire un "os.system("kill -9 pid") "
    mon probleme est comment recupérer le Pid de programme que je vient de le lancer ,
    Est ce qu'il y a quelq'un qui connait une fonction qui fait cà??

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Utilise plutôt le module subprocess et la fonction subprocess.Popen

    http://python.developpez.com/faq/?pa...GenExecuteFile

  3. #3
    Membre confirmé Avatar de GoldenEyes
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Citation Envoyé par Guigui_ Voir le message
    Utilise plutôt le module subprocess et la fonction subprocess.Popen

    http://python.developpez.com/faq/?pa...GenExecuteFile
    Merci pour la réponse ,
    j'ai vu la Doc et j'ai fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    pipe = Popen(lunch, shell=True, stdout=PIPE).stdout 
    pid = Popen(lunch, shell=True, stdout=PIPE).pid
    output = pipe.read()
    print output
    mais comment je férme l'application et continuer a executer le réste de programme, j'ai pas pu le faire Popen ne me rend pas immédiatement la main pour poursuivre le programme ?

    Merci d'avance pour tout aide ,

  4. #4
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    y'a quoi dans lunch ?

    par exemple, pour lancer un programme python externe (et qui me rend la main)
    exemple sous windows qui doit pouvoir s'adapter sous linux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import subprocess
    myprog = subprocess.Popen([sys.exec_prefix +os.sep + 'pythonw.exe', 'monprog.py'])
    et pour tuer le prog a la fin, (sous linux, je ne sais pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import ctypes
    ctypes.windll.kernel32.TerminateProcess(int(myprog._handle), -1)

  5. #5
    Membre confirmé Avatar de GoldenEyes
    Inscrit en
    Avril 2008
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 197
    Par défaut
    Citation Envoyé par Guigui_ Voir le message
    y'a quoi dans lunch ?
    Merci pour la réponce ,
    voila mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
    def lancerwebkit (url) :
    	print url
    	name="GtkLauncher"
    	app ="webkit-last-version/WebKit/Programs/"+name
    	lunch=app + "  "+ url	
    	pipe = Popen(lunch, shell=True, stdout=PIPE).stdout
    	pid = Popen(lunch, shell=True, stdout=PIPE).pid
    	output = pipe.read()	
    	return 
     
    def main () :
    	usage =  	"./webkit-python.py   \n "\
    			"\t-l    : URL\n"\
    	parser = OptionParser(usage)
    	parser . add_option ( "-l", "--url", dest = "link",
    		            help="url a charger ")
    	(options, args) = parser.parse_args()
    	if len (args) != 0 :
    		parser . error ("Incorrect arguments")
    	if (not(options.link)):       
    		print "\nYou must give URL "
    		print "\n",usage
    	lancerwebkit(options.link)
    if __name__ == "__main__":
    	main()
    lunch c'est pour lancer GTKLuncher de WebKit , est ce que je doit utiliser de Fork ?
    j'ai pas pu adapter les fonctions que vous m'aviez donner ?
    Vous pouvez m'aider ?
    Merci d'avance pour tout aide ,

  6. #6
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    A priori, lunch est une liste sinon, la fonction Popen fonctionner comme os.system
    =>

Discussions similaires

  1. Savoir si le programme lancer avec exec fonctionne
    Par alaninho dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 02/10/2014, 10h15
  2. Réponses: 11
    Dernier message: 13/06/2012, 13h11
  3. [Batch] Lancer programme python avec paramètre
    Par bastou93 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 07/07/2011, 07h58
  4. Comment lancer un programme java avec Process?
    Par stpaul04 dans le forum Débuter avec Java
    Réponses: 15
    Dernier message: 20/02/2011, 23h52
  5. Réponses: 3
    Dernier message: 23/05/2007, 16h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo