ホームページ > ウェブフロントエンド > フロントエンドQ&A > Node.js でプロセス PID をクエリする方法

Node.js でプロセス PID をクエリする方法

PHPz
リリース: 2023-04-26 10:00:41
オリジナル
1734 人が閲覧しました

Node.js は、サーバー側で JavaScript を実行できる Chrome V8 エンジンに基づくオープンソースの JavaScript 実行環境です。イベント駆動型のノンブロッキング I/O モデルを採用しており、軽量で効率的なリアルタイム データ対話アプリケーションに最適です。

Node.js アプリケーションを開発するとき、現在のプロセスの PID、つまりプロセス ID をクエリする必要がある場合があります。 PID は、システム内のプロセスを一意に識別する数値タイプです。通常、シェル コマンドまたはシステム API を通じてプロセスの PID をクエリできます。この記事では、Node.js でプロセス PID をクエリする方法を紹介します。

プロセス オブジェクトによる PID のクエリ

Node.js では、プロセス オブジェクトを使用して、プロセスの PID など、現在のプロセスに関する情報を取得できます。プロセス オブジェクトは Node.js のグローバル オブジェクトの 1 つであり、いつでもアクセスできます。以下は、現在のプロセスの PID を取得するサンプル コードです。

console.log('当前进程的 PID 是:', process.pid);
ログイン後にコピー

上記のコードは、現在の Node.js プロセスの PID を出力します。

プロセス名による PID のクエリ

現在のプロセスの PID のクエリに加えて、特定のプロセスの PID のクエリも必要になる場合があります。このとき、PID はプロセス名によって照会できます。 Linux/macOS では、シェル コマンド ps を使用してプロセス情報をクエリできます。 Windows では、tasklist コマンドを使用してプロセス情報を照会できます。以下は、指定されたプロセスの PID を取得するサンプル コードです:

Linux/macOS

const { exec } = require('child_process');

exec('pgrep node', (err, stdout, stderr) => {
  if (!err && stdout) {
    console.log('当前 Node.js 进程的 PID 是:', stdout.trim());
  }
});
ログイン後にコピー

上記のコードは、シェル コマンド を通じて現在実行中の Node.js プロセスをクエリします。 pgrep node PID を実行し、結果を出力します。

Windows

const { exec } = require('child_process');

exec('tasklist /FI "IMAGENAME eq node.exe" /NH', (err, stdout, stderr) => {
  if (!err && stdout) {
    const pids = stdout.trim().split('\n').map(line => {
      const columns = line.trim().split(/\s+/);
      return parseInt(columns[1]);
    }).filter(pid => !isNaN(pid));
    console.log('当前 Node.js 进程的 PID 是:', pids[0]);
  }
});
ログイン後にコピー

上記のコードは、シェル コマンド tasklist /FI "IMAGENAME eq node.exe" /NH## を通じて、現在実行中の Node.js プロセスの PID をクエリします。 #. そして結果を出力します。

概要

この記事では、Node.js がプロセス PID をクエリするための 2 つの方法を紹介します。1 つはプロセス オブジェクトを使用して現在のプロセス PID をクエリする方法、もう 1 つはプロセス名を使用して指定されたプロセス PID をクエリする方法です。どちらの方法も、プロセスを管理する必要がある Node.js アプリケーションにとって非常に便利です。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート