免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2203 | 回复: 1
打印 上一主题 下一主题

【求助】 python 作为cgi 运行的几个问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-01-17 17:03 |只看该作者 |倒序浏览
对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


非常感谢!

论坛徽章:
0
2 [报告]
发表于 2010-01-18 08:54 |只看该作者
如果不是500错误的话,应该就是权限问题了。
你在命令行下是root运行,而apache运行时候则不是鸟。

查查apache error log把。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP