6月 112014
process.on(“exit”, callback)に登録しておくと、プロセスが終了する時に処理できる。
しかしそこで非同期処理を行うと、処理が終わる前にプロセスが終了してしまう。
使いたいところ
BlendMicroとのBLEでの通信をシリアルポートのように使えるモジュールを作ってるんだけど、プロセス終了時にperipheral.disconnect()しないとBlendMicro側がずっと開きっぱなしになって、再接続できなくなる。
ctrl+cでnodeを終了した時とかに、ちゃんとBLEを閉じたい。
こうした
for signal in ['SIGINT', 'SIGHUP', 'SIGTERM']signal受け取れる事は知ってたけど、signalを握りつぶせる事は知らなかった。
process.on signal, ->
peripheral.disconnect ->
process.exit 1
peripheralを閉じる処理終わったら、自分でprocess.exitする必要がある。
node v0.12以上ならprocess.on(“beforeExit”, callback)が使える
ようになるらしい