2014-07-15 69 views
0

Python subprocess.popen在本地机器上很容易,但可以通过网络调用它吗?Python subprocess.popen通过网络

例子,说我有3台PC,一个被称为工作站,PC,其他人都被称为节点1-PC和节点2-PC ...

是否可以呼吁,比方说一个过程,node1- PC,从工作站PC,最好不必在node1-pc上运行特殊的服务器软件?

无论如何,非常感谢您的回复!

吉尔斯

编辑 忘了提,我使用Python 3

+2

不,你需要创建一个消息传递系统之间的3个网络机器...像芹菜可能... ... –

回答

1

我会建议使用两种:

例与面料:

from fabric.api import env, run 

env.hosts = ['host1', 'host2'] 

def mytask(): 
    run('ls /var/www') 
+0

感谢您的答复,但我忘了我正在使用Python 3 mentiuon,和织物不与它一起工作! – Gilles

0

面料可能是要走的路,然而,没有什么可以阻止你通过ssh在* nix的环境中执行远程命令。

import subprocess 
p = subprocess.Popen(['ssh', 'node1-pc', 'ls', '-ltr', '/etc'], stdout=subprocess.PIPE) 
out, err = p.communicate() 

out将包含远程进程的stdout。

+0

忘了提及我使用Python 3,所以没有织物给我! 我试过Popen调用,但得到一个错误,无论我尝试什么“FileNotFoundError:[WinError 2]系统找不到指定的文件” – Gilles

+0

Windows是不同的。你需要使用合适的SSH客户端和服务器。 – mhawke