- 论坛徽章:
- 0
|
对Python了解不多,请各位帮忙,谢谢!
1. apache 执行了一个 python 的cgi脚本,脚本中执行了包含一个有长输出的命令,
...
sys.stdout=open('/dev/null','w')
sys.stderr=open('/dev/null','w')
path="/test/cmd1"
cmd="cmd1"
retcode = os.spawnlp(os.P_NOWAIT, path, cmd, "test")
print 'returned <br>'
...
虽然我用的是NOWAIT,但是每次在网页上都可以看出,apache一直在等cmd1的完成 (如果在shell中,./cmd1'可以看出returned确实先执行了),而且完成后会把命令输出显示出来,
Q1: 为什么NOWAIT不起作用?
Q2: 为什么sys.stout重定向不起作用?
2. 还是一个cgi脚本,
...
_r=subprocess.Popen(cmd,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
shell=True)
_r.wait()
...
print '%s' % (_r.stdout.read())输出中,会将连续的空白压缩之后返回,导致网页上的输出很混乱,不知道是什么原因可以恢复?
例如:本来的输出是
case result status
1 ok
变成了
case result status
1 ok
非常感谢! |
|