やちといいます。

環境:
FreeBSD 8.2R p3
node v0.6.14

SIGINTとかのsignalをうけとりたいと思い、下記のようなcodeを書きました。

tp.js
-------------------------------------------------------
process.on('SIGUSR1', function (){
        console.log("usr1.");
        process.exit(100);
});
process.on('SIGINT', function (){
        console.log("interrupted.");
        process.exit(200);
});
process.on('exit', function (){
        console.log("exit.");
});

var c = 0;
while(true){
        console.log("foo" + c);
        c++;
//      if (c == 10000) {
//              process.exit(10);
//      }
}
-------------------------------------------------------

で、$ node tp.js として、実行。他のterminalから$ killall -USR1 node としても、割り込みにより
console.logでの文言を出力したり、process.exit()によって止めたり出来ません。また、nodeを実行したterminalで
CTRL-Cをしても止まりません。
SIGINTのprocess.on()を削ると、CTRL-Cで止まるので、trapは出来ているような気がしています。が、
console.llogしている文言はいずれも出力されません。

なにか、指摘をお願いします。

メールによる返信