subprocess.Popen を使用して複数のプロセスを実行しています。ファイルのグループのいずれかで変更を検出したら、これらのプロセスの 1 つにシグナルを送信したいと考えています。プロセスでシグナル ハンドラーを定義しましたが、シグナルが送信されていないようです。いくつかの助けをいただければ幸いです。シグナルの送信を行う関数とシグナルハンドラを以下に示します。
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)