我来到生产箱上运行一个脚本,它在其中一个首次检查中失败了。我把它缩小到我的“ping”检查(由子进程调用)返回非零结果的事实。
以下是最简单的代码:
import subprocess
import sys
ip="127.0.0.1"
ping = subprocess.Popen(["ping", "-c", "2", "-w", "1", ip], shell=False)
ping.wait()
if ping.returncode != 0:
print ping.returncode, "ERROR: failed to ping host. Please check."
sys.exit(1)
else:
print "OK"
两台服务器都是CentOS 5.5& Python 2.4.3,但是一个有效,一个没有!
在命令行中,手动ping(127.0.0.1)在两种情况下都返回0。在python中使用子进程模块时,为什么它们有区别?
干杯。