nodemon を使って Node.js プログラムをデバッグする方法
コマンドラインから Node.js プログラムを停止する方法
Ctrl+C キーを押す
これは最も簡単な方法です。実行中の Node.js プログラムにフォーカスを当てて、Ctrl
キーと C
キーを同時に押すと、プログラムが強制終了されます。
kill
コマンドは、プロセス ID (PID) を指定してプロセスを強制終了することができます。Node.js プログラムの PID を確認するには、ps
コマンドを使用します。
$ ps aux | grep node
出力結果から、Node.js プログラムの PID を確認できます。PID がわかれば、kill
コマンドを使用してプログラムを停止できます。
$ kill <PID>
SIGKILL シグナルを送信する
kill
コマンドは、デフォルトでは SIGTERM
シグナルを送信します。SIGTERM
シグナルを受け取ったプログラムは、終了処理を行うことができます。しかし、プログラムが終了処理を行わない場合は、SIGKILL
シグナルを送信して強制終了することができます。
SIGKILL
シグナルを送信するには、kill
コマンドに -9
オプションを指定します。
$ kill -9 <PID>
pkill
コマンドは、名前でプロセスを検索して強制終了することができます。
$ pkill node
スクリプトファイルに終了処理を記述する
Node.js プログラムの終了処理をスクリプトファイルに記述しておくと、コマンドラインからプログラムを停止する際に、終了処理を確実に実行することができます。
例えば、exit.js
という名前のスクリプトファイルを作成し、以下のコードを記述します。
// 終了処理
console.log('プログラムが終了しました。');
process.exit();
このスクリプトファイルを node
コマンドで実行すると、プログラムが終了する際に console.log()
で出力されたメッセージが表示されます。
$ node exit.js
プログラムが終了しました。
注意事項
- 上記の方法でプログラムを強制終了すると、データが失われる可能性があります。
- プログラムを停止する前に、必ず終了処理を行うようにしてください。
コマンドラインから Node.js プログラムを停止するには、いくつかの方法があります。状況に応じて適切な方法を選択してください。
// 終了処理
console.log('プログラムが終了しました。');
process.exit();
$ node exit.js
プログラムが終了しました。
このコードを参考に、プログラムの終了処理を記述してください。
- プログラムの状態に応じて、異なる終了処理を行うように記述することができます。
- 終了処理に時間がかかる場合は、
async
/await
を使用して非同期処理を行うように記述することができます。
コマンドラインから Node.js プログラムを停止するその他の方法
nodemon
は、Node.js プログラムを監視し、ファイルに変更があった際に自動的に再起動するツールです。nodemon
を使用してプログラムを実行すると、Ctrl
+C
キーを押してもプログラムは完全に終了せず、監視状態になります。再度 Ctrl
+C
キーを押すと、プログラムが完全に終了します。
デバッガーを使用する
Node.js には、debugger
コマンドを使用してプログラムをデバッグする機能があります。デバッガーを使用すると、プログラムの実行を一時停止したり、変数の値を確認したりすることができます。プログラムの実行を一時停止した状態で、Ctrl
+C
キーを押すと、プログラムが完全に終了します。
プロセス管理ツールを使用する
top
や htop
などのプロセス管理ツールを使用して、Node.js プログラムのプロセスを強制終了することができます。
kill
コマンドや pkill
コマンドを実行するスクリプトファイルを作成して、コマンドラインから実行することができます。
node.js command