>  기사  >  웹 프론트엔드  >  Node.js에서 프로세스 PID를 쿼리하는 방법

Node.js에서 프로세스 PID를 쿼리하는 방법

PHPz
PHPz원래의
2023-04-26 09:11:171658검색

Node.js는 Chrome V8 엔진을 기반으로 하는 오픈 소스 JavaScript 실행 환경으로, 서버 측에서 JavaScript를 실행할 수 있습니다. 이벤트 중심의 비차단 I/O 모델을 채택하여 가볍고 효율적인 실시간 데이터 상호 작용 애플리케이션에 이상적입니다.

Node.js 애플리케이션을 개발할 때 가끔 현재 프로세스의 PID, 즉 프로세스 ID를 쿼리해야 할 때가 있습니다. PID는 시스템의 프로세스를 고유하게 식별하는 숫자 유형입니다. 일반적으로 쉘 명령이나 시스템 API를 통해 프로세스의 PID를 쿼리할 수 있습니다. 이 기사에서는 Node.js에서 프로세스 PID를 쿼리하는 방법을 소개합니다.

프로세스 객체를 통한 PID 쿼리

Node.js에서는 프로세스 객체를 사용하여 프로세스의 PID를 포함하여 현재 프로세스에 대한 정보를 얻을 수 있습니다. 프로세스 개체는 Node.js의 전역 개체 중 하나이며 언제든지 액세스할 수 있습니다. 다음은 현재 프로세스의 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());
  }
});

위 코드는 쉘 명령 pgrep node를 통해 현재 실행 중인 Node.js 프로세스의 PID를 쿼리합니다. > 결과를 ​​출력합니다. pgrep node 查询当前正在运行的 Node.js 进程的 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]);
  }
});

以上代码将通过 shell 命令 tasklist /FI "IMAGENAME eq node.exe" /NH

Windows

rrreee

위 코드는 쉘 명령 tasklist /FI "IMAGENAME eq node.exe" /NH를 통해 현재 실행 중인 Node.js 프로세스의 PID를 쿼리하고 결과를 출력합니다.

요약🎜🎜이 글에서는 Node.js에서 프로세스 PID를 쿼리하는 두 가지 방법, 즉 프로세스 객체를 통해 현재 프로세스 PID를 쿼리하는 방법과 프로세스 이름을 통해 지정된 프로세스 PID를 쿼리하는 방법을 소개합니다. 두 방법 모두 프로세스를 관리해야 하는 Node.js 애플리케이션에 매우 유용합니다. 🎜

위 내용은 Node.js에서 프로세스 PID를 쿼리하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.