使用Popen执行脚本失败

使用Popen执行脚本失败

问题描述:

我需要通过服务在后台执行脚本。使用Popen执行脚本失败

该服务使用Popen启动脚本。

p = Popen('/path/to/script/script.py', shell=True) 

为什么当我在for循环中包含文件写入时,以下脚本不起作用?

#!/usr/bin/python 

import os 
import time 

def run(): 
    fd = open('/home/dilleyjrr/testOutput.txt', 'w') 

    fd.write('Start:\n') 
    fd.flush() 

    for x in (1,2,3,4,5): 
     fd.write(x + '\n') 
     fd.flush() 
     time.sleep(1) 

    fd.write('Done!!!!\n') 
    fd.flush() 

    fd.close() 

if __name__ == '__main__': 
    run() 

这是你的错误:

for x in (1,2,3,4,5): 
    fd.write(x + '\n') 

你不能总结一个int一个字符串。改为使用(例如)

for x in (1,2,3,4,5): 
    fd.write('%s\n' % x) 
+0

我对该文件拥有777的权限。 我刚将它切换到/ tmp,您的权利对于此测试会更好。 结果是相同的,如果我注释掉循环文件写输出是... 开始: 完成!!!! 与他们包括输出是... 开始: – Ron 2009-07-16 15:08:37

你得到了什么错误?没有错误很难看到问题。无论如何,该文件是否在其他地方打开?

+0

我没有看到任何错误。该脚本在服务的后台执行。该文件未与任何其他应用程序打开。 我是新来写服务/ mod_python/apache如果应该有错误的地方,你能指出日志文件吗? 谢谢。 – Ron 2009-07-16 14:52:00