2009-05-23 7 views
1

Je dois exécuter la commande suivante:exécution * binaires nix en Python

screen -dmS RealmD top 

Essentiellement invoquer écran GNU en arrière-plan avec le titre de la session « RealmD » avec la commande supérieure en cours d'exécution à l'intérieur de l'écran. La commande DOIT être invoquée de cette façon, il ne peut donc pas y avoir de substitut pour l'écran jusqu'à ce que le serveur soit ré-outillé. (Un autre projet pour une autre fois)

J'ai sous-jeté dans la commande du haut pour le binaire serveur qui doit être exécuté. Mais top est un substitut décent alors que le code est en cours de débogage pour ce module python.

Ce dont j'ai vraiment besoin, c'est d'un moyen d'exécuter l'écran avec les paramètres ci-dessus en Python.

Répondre

7

Utilisation os.system:

os.system("screen -dmS RealmD top") 

Puis dans une coque séparée vous pouvez jeter un oeil à top en exécutant screen -rd RealmD.

+1

Pourquoi ne pas utiliser le sous-processus? –

+0

Parce que je ne savais pas à ce sujet jusqu'à maintenant :) – Stephan202

11

os.system est le moyen le plus simple, mais, pour beaucoup plus de possibilités et de degrés de liberté, aussi regarder le module bibliothèque standard subprocess (sauf si l'utilisation merveilleusement simple de Stephan202 de os.system répond à tous vos besoins, bien sûr ;-).

Modifier est ici le remplacement standard pour os.system()

p = Popen("screen -dmS RealmD top", shell=True) 
sts = p.wait() 

http://docs.python.org/library/subprocess.html#replacing-os-system

Questions connexes