我正在使用subprocess.Popen运行多个进程,当检测到一组文件中的任何更改时,我想向这些进程中的一个发送信号。 我在进程中定义了信号处理程序,但似乎没有收到任何信号。 希望能得到一些帮助。 下面显示了发送信号的函数和信号处理程序。
下面是信号处理程序的示例:
def start_up():
p, i = None, None
while 1:
subprocess.call(['clear'])
logging.info('starting overlay on host %s' % socket.gethostname())
p = subprocess.Popen([sys.executable, 'sdp_proc.py'])
i = subprocess.Popen([sys.executable, 'kernel.py', sys.argv[1],
sys.argv[2]])
if file_modified():
p.terminate()
i.send_signal(signal.SIGINT)
time.sleep(1)
下面是信号处理程序的示例:
def signal_handler(signum, frame):
with open('log.txt', 'w') as f:
f.write(' so what mate, received signal with signal number %s' % signum)
signal.signal(signal.SIGINT, signal_handler)
sdp_proc.py
和kernel.py
是做什么的?它们会一直运行还是在1秒钟后结束?另外,我将使用open('log.txt', 'a')
打开日志文件以追加消息。 - twil