2008年2月19日火曜日

signal @ python

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
signal moduleの中にsignalを発生させる関数が見当たらんが・・・?!?

とりあえず、あきらめ。signal.SIGCHLDでガマン。forkしなおすべ・・・。てか、serve_foreverを例外で抜けざるを得ないから、clientにも迷惑がかかる。orz。

しかし死んだ子プロセスのpidはframeからわかるのかね??
プロセスが死んだら計算結果を取りに行くのか・・・。


だめすぎ。


import time
import signal
import os


def handler(signum, frame):
print "child is gone"
print signal.SIGCHLD, signum
print dir(frame)

signal.signal(signal.SIGCHLD, handler)


if os.fork():
time.sleep(5)
else:
time.sleep(1)
os._exit(0)

print "done"

1 件のコメント:

nori さんのコメント...

あ・・・。。os.kill(pid, sig)だ・・・。orz