ホームページ  >  記事  >  ウェブフロントエンド  >  Nodejsでプロセスを終了する方法

Nodejsでプロセスを終了する方法

PHPz
PHPzオリジナル
2023-04-05 14:34:571814ブラウズ

Node.js は、V8 エンジンに基づく JavaScript 実行環境であり、現在フロントエンド開発で最も一般的に使用されているテクノロジの 1 つです。 Node.js ではプロセスは非常に重要な概念であり、すべての Node.js アプリケーションは実行するプロセスを開始します。場合によっては、実行中のプロセスを手動で終了する必要があるため、この記事では Node.js プロセスを終了する方法を紹介します。

プログラム中止シグナル

Node.js では、プロセスは複数のシグナルを受信でき、これらのシグナルを使用して、プロセスの中止などのプロセスの動作を制御できます。一般的な信号には次のものがあります。

  • SIGINT: ユーザー入力 Ctrl C によってトリガーされ、通常はプロセスを終了するために使用されます。
  • SIGTERM: 通常、プロセスを正常に終了する必要があることを示すためにオペレーティング システムによって送信されます。
  • SIGHUP: 通常、端末接続が中断されたことを示します。
  • SIGBREAK: Windows システムでトリガーされ、ユーザーが Ctrl Break を入力します。

プロセスがこれらのシグナルのいずれかを受信すると、Node.js は process オブジェクトの exit() イベントをトリガーします。プロセスが終了する前に、いくつかのクリーンアップ操作を実行します。

コードによる終了

process.exit() メソッドを直接呼び出して、コード内のプロセスを終了できます。 process.exit() このメソッドは、終了コードと呼ばれる整数パラメータの受け渡しをサポートしています。終了コードは、プロセスが正常に終了した場合は 0、それ以外の場合は 0 以外の値になります。次のように:

const code = 1;
process.exit(code);

この場合、プロセスは終了コード 1 で終了します。これはターミナルで echo $?(Mac/Linux) または echo を使用して実行できます。 %errorlevel% (Windows) 終了コードを表示します。

さらに、プロセスを終了する前に、exit() イベントをリッスンしていくつかのクリーンアップ操作を実行できます。

process.on('exit', code => {
  // 执行一些清理操作
  console.log(`进程退出,退出码:${code}`);
});

Use the kill command

コードに加えて、オペレーティング システムの kill コマンドを使用してプロセスを終了することもできます。 kill コマンドは通常、プロセスの動作を制御するためにプロセスにシグナルを送信するために使用されます。たとえば、次のようになります。

# 给进程 ID 为 1234 的进程,发送 SIGTERM 信号结束进程
kill -SIGTERM 1234

パラメーターが渡されない場合、kill コマンドはデフォルトでは SIGTERM シグナル。これによりプロセスが正常に終了します。例:

# 结束进程 ID 为 1234 的进程
kill 1234

pm2 を使用してプロセスを管理する

pm2 は、運用環境で広く使用できる非常に強力なプロセス管理ツールです。 pm2 コマンド ラインからアプリケーションを開始、再起動、停止し、アプリケーションの実行ステータスを監視できます。 pm2 を使用してプロセスを管理するのは非常に簡単です。アプリケーション ディレクトリで次のコマンドを実行するだけです:

# 启动应用程序
pm2 start app.js

# 重启应用程序
pm2 restart app.js

# 停止应用程序
pm2 stop app.js

さらに、pm2 もアプリケーションの実行ステータスとログの監視を担当し、実稼働環境での使用に非常に適した出力です。

つまり、Node.js プロセスを終了するにはさまざまな方法があります。最も一般的な方法は、コードを通じて process.exit() メソッドを呼び出すか、pm2# を使用することです。 # #プロセスを管理します。いずれにせよ、バックグラウンドで実行されているプロセスによって引き起こされる不必要なシステム負荷を避けるために、プロセスが正常に終了することを確認する必要があります。

以上がNodejsでプロセスを終了する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。