2012-03-26 8 views
2

私はかなり複雑なスクリプトを使い、ソケット、HTTPサーバ、ファイルの読み込み/書き込み、タイムアウトなどを設定します。これらのすべての状態に達すると、すべてのタイムアウトがクリアされます。に。何がノードプロセスを停止させるのかを知るには?

時にはプロセスが正常に停止し、時には何か起こるのを待っていることもあります。私はノードプロセスを殺すことができますが、私はその動作の原因を突き止め、修正し、プロセス自体を停止させたいと思います。それを終了させるものをデバッグすることは可能ですか?

アップデート:私は月の提案に従っ

と、このI私はシンプルsetTimeoutコール "デバッグ" をしようとしたとき、私が得たもの:

/tmp/node2/bin/node test.js 
[debug] UV_TIMER 0x1cdfd20 (fd:910168617, refs:0, flags:0x0) 
[debug] UV_ASYNC 0xc096e8 (fd:0, refs:-1, flags:0x0) 
[debug] UV_ASYNC 0xc09658 (fd:0, refs:0, flags:0x0) 
[debug] UV_IDLE 0xc09778 (fd:0, refs:-2, flags:0x0) 
[debug] UV_ASYNC 0xc041c0 (fd:0, refs:-1, flags:0x0) 
[debug] UV_ASYNC 0xc03de0 (fd:0, refs:-1, flags:0x0) 
[debug] UV_TIMER 0xc03d40 (fd:0, refs:-1, flags:0x0) 
[debug] UV_IDLE 0xc03ca0 (fd:0, refs:-1, flags:0x0) 
[debug] UV_CHECK 0xc03c00 (fd:0, refs:-1, flags:0x0) 
[debug] UV_IDLE 0xc03a00 (fd:0, refs:-1, flags:0x0) 
[debug] UV_CHECK 0xc03b60 (fd:0, refs:-1, flags:0x0) 
[debug] UV_PREPARE 0xc03ac0 (fd:0, refs:-1, flags:0x0) 

をだからこれは、私にとって非常に有用ではないですが、私は他の選択肢がないと思う。

答えて

1

あなたは、Node.jsののthis patched versionをコンパイルすることでアプリケーションを起動する(node appname.js)、次に実行することができます。

pkill -USR2 node 

これは、その時点でのイベントループ上のすべてのアクティブなハンドルを出力します。


N.B.これは4ヶ月前のバージョンなので、ちょっと古いです。ある時点でノードに入るはずですが、まだ計画はありません。

+0

これを実行しますが、印刷されるのは「ユーザー定義信号2」だけで、プロセスが終了します。 – Fluffy

+0

コンパイルする前に他のブランチに切り替えたはずです – Fluffy

関連する問題