如何从Python中的主程序向模块发送关闭信号

时间:2016-01-26 17:22:10

标签: python signals

我在Windows上使用Python 2.7.3。

好。现在,认为有一个python程序。例如,我们将其命名为“program.py”,它是program.py的内容:

import program2
class program(object):
    def __init__(self):
        ...
        ... the jobs which program will do ...
        ...

    def function(self): #we call it from __init__ function when it's time came
        program2.start()

if __name__ == "__main__":
    p = program()

在program.py的同一文件夹中有一个文件,名为program2.py。让我们为program2.py提供一个内容:

def start():
    ....
    .... the jobs which program2.py will do ... # In this function we do jobs with while loops, threads etc. 
    ....
def stop():
    ...
    ... program2.py closes itself here ...
    ...

认为我运行了program.py。过了一会儿我想关闭program.py并按Ctrl + C.但是program2.py中的线程仍在运行。我想要一个像program2.py这样的东西运行stop()函数并关闭它自己。所以,程序将关闭其所有连接(如program2.py)。我该怎么办?

我搜索了信号模块,但我没有在Linux上工作。我在Windows上工作,我不能使用很多信号模块的功能。我通过创建一个名为'stop.txt'的文件来成功。我的意思是当program.py采用Ctrl + C命令时,它会创建一个文件'stop.txt',program2.py控制该文件夹中是否有一个名为stop.txt的文件。当program.py创建文件时,program2.py会看到它并自行关闭。但我认为这种方法很原始。有更隐秘的方法吗?

感谢。

0 个答案:

没有答案