我试图通过ssh发出命令并通过子进程获取其返回代码。我有一些代码,看起来像这样:通过子进程通过SSH发出命令时正确获取返回码
cmd = 'ssh [email protected]_addr "some_command"'
res = subprocess.check_output(
cmd,
shell=True,
stdout=subprocess.PIPE)
现在这个伟大的工程,如果CMD只生成退出代码(例如,设置CMD“退出1”,然后做一个try/catch,看看它退出与非零但是,下面的无限期挂起:。
cmd = 'ssh [email protected]_addr "ls -la && exit 0;"'
res = subprocess.check_output(
cmd,
shell=True,
stdout=subprocess.PIPE)
我看到two questions是looked similar,我did RTFM,但我仍然不知道做什么,我真的不关心是否或者不是命令生成输出;我更关心退出代码,如果有人知道这样做的最佳方式,或者我是否在使用g子过程不当,我将不胜感激。
'check_output'似乎没有'stdout'参数。你的意思是'stderr'吗? – 2015-03-13 19:05:28
我做到了,对此抱歉。 – 2015-03-13 19:08:54
然后,您需要查看有关** not **使用'stderr = PIPE'的大通知,因为它可能会挂在您指向的链接上。 – 2015-03-13 19:26:09