终止长时间运行的脚本

时间:2016-10-21 12:56:18

标签: python multithreading

我有两个脚本。

main.py

import threading
import time
import os

exitflag = 0

class Testrun(threading.Thread):
    def __init__(self,threadID,name,delay):
        threading.Thread.__init__(self)
        self.threadID = threadID
        self.name = name
        self.delay = delay

    def run(self):
        print 'launching test '+self.name
        launch_test(self.name,self.delay)
        print 'exitiing test '+self.name

def launch_test(threadname,delay):
    os.system('test.py')
    if exitflag ==1:
        threadname.exit()

thread = Testrun(1,'test',10)

thread.start()

调用 test.py

import time

while True:
    print 'hello'
    time.sleep(1)

延迟30秒后,我想终止 test.py 我使用的是python 2.4.2。 有事件生成有没有办法做到这一点 对此代码或任何其他替代模块的任何建议都可以。

1 个答案:

答案 0 :(得分:0)

更好的选择是使用subprocess模块(https://docs.python.org/2/library/subprocess.html)来启动外部进程。另见这篇文章:How to terminate a python subprocess launched with shell=True