如何关闭另外一个python process
我有一个脚本是这样的,起一个进程在后台抓log, log会一直的刷,没有尽头。然后在特定的时间关闭它,或者说,我想什么时候不抓了就停了它。 停的方式呢,就是运行另一个脚本,这个怎么实现呢?抓log的代码如下:
file=open("logs.txt","w") log=subprocess.Popen(["catch.exe","-t"],shell=False,stdout=subprocess.PIPE) while log.poll() == None: line=log.stdout.readline() file.write(line) else: file.close()
import osfile=open("logs.txt","w") log=subprocess.Popen(["catch.exe","-t"],shell=False,stdout=subprocess.PIPE) stop = Falsewhile (log.poll() == None) and (not stop): line=log.stdout.readline() file.write(line) stop = os.path.exists("stop.txt")else: file.close()
[解决办法]
阻塞式的是这样的,有非阻塞的subprocess,看看:
http://www.python.org/dev/peps/pep-3145/
http://code.google.com/p/subprocdev/source/browse/subprocess.py?r=2c925e935cad0166d5da85e37c742d8e7f609de5&spec=svn2c925e935cad0166d5da85e37c742d8e7f609de5