AJA Chat のまとめのまとめ。USR1シグナルを送るとプロセスは再起動するらしい。
AJA Chatの動き
- 参加者はXMLHttpRequestを使ってserv.cgiに繋ぐ。30秒後にserv.cgiからレスポンスが返ってきたら繋ぎなおす。この繰り返しで常時接続。
- 書き込みがあった場合には、全参加者のserv.cgiプロセスに対してUSR1シグナルを送る。
- serv.cgiはUSR1シグナルが来るとログを再読込(onreadystatechangeで監視)
サンプルがあったので試してみました。
以下のスクリプトを実行
#!perl
$SIG{'USR1'} = sub { print "ktkr!\n" };
while(1){ sleep 60 };
$SIG{'USR1'} = sub { print "ktkr!\n" };
while(1){ sleep 60 };
スクリプトのPIDに対してUSR1シグナルを送る
# kill -USR1 PID
シグナルを送る度にprintが実行されました。なるほど。