Подтвердить что ты не робот

Как проверить, работает ли какой-либо PID с помощью Node.js?

Есть ли способ проверить, работает ли какой-либо PID или жив в системе, используя Node.js? Предположим, что Node.js script имеет соответствующие разрешения для чтения /proc или эквивалента Windows.

Это можно сделать либо синхронно:

if (isAlive(pid)) { //do stuff }

Или асинхронно:

getProcessStatus(pid, function(status) {
    if (status === "alive") { //do stuff }
}

Обратите внимание, что я надеюсь найти решение для этого, которое работает с произвольным системным PID, а не только с PID работающего процесса Node.js.

4b9b3361

Ответ 1

Мне нужно было проверить запуск pid в проекте. Я принял этот ответ с помощью kill -0 <PID> и завернул его в модуль под названием is-running https://npmjs.org/package/is-running

npm install is-running

Ответ 2

Похоже, вы можете вызвать process.kill(pid, 0) и завернуть его в try/catch.

http://nodejs.org/api/process.html#process_process_kill_pid_signal - "Выбросит ошибку, если цель не существует, а в качестве особого случая сигнал 0 может использоваться для проверки существования процесса".

Ответ 3

Я не эксперт здесь, но не могли бы вы создать дочерний процесс, чтобы проверить статус с помощью инструмента командной строки?