ホームページ > 記事 > ウェブフロントエンド > nodejs crtl cが終了しない
Node.js を使用した開発プロセス中に、コマンド ラインで Ctrl C を使用してもプログラムを終了できないという奇妙な問題が発生することがあります。通常、実行中のプログラムを中断したり、現在のコマンド ラインを終了するには Ctrl C を使用するため、この問題は非常に厄介です。この問題とその解決策について以下で説明します。
Node.js では、通常、プロセス関連の操作を処理するために process
モジュールを使用します。このモジュールは、現在のプロセスを終了するための process.exit()
など、多くの便利なメソッドを提供します。プログラム内でユーザー入力を聞きたい場合は、process.stdin
を使用してユーザー入力を読み取ることができます。
ただし、process.stdin
を使用してユーザー入力を読み取る場合、ユーザー入力割り込み信号 (Ctrl C など) が処理されないと、プログラムは無限ループに陥り、プログラムを終了するための割り込み信号。これは、ユーザーが Ctrl C を入力すると実際に割り込み信号が送信され、Node.js のデフォルトの動作では割り込み信号が処理されず、プロセスが実行を継続するためです。
それでは、この問題にどう対処すればよいでしょうか?実際、この問題を解決するのは非常に簡単で、手動で割り込み信号をリッスンしてプログラム内で処理するだけです。サンプル コードは次のとおりです。
process.on('SIGINT', function() { console.log('Received SIGINT. Exiting...'); process.exit(0); });
このコードは、単純に割り込み信号 (SIGINT) をリッスンし、信号を受信するとメッセージを出力し、process.exit()
を使用して現在のプロセスを終了します。 。このようにして、ユーザーが Ctrl C を使用すると、プロセスは正しく終了します。
上記は、Node.js で Ctrl C を使用してプログラムを終了できない理由と解決策です。プログラム内の割り込み信号を手動でリッスンすることで、プログラムがユーザー入力に正しく応答して終了することを確認できます。実際の開発では、この問題によるトラブルを避けるために、この問題に注意する必要があります。
以上がnodejs crtl cが終了しないの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。