Ответ 1
Мне нужно было проверить запуск pid в проекте. Я принял этот ответ с помощью kill -0 <PID>
и завернул его в модуль под названием is-running https://npmjs.org/package/is-running
npm install is-running
Есть ли способ проверить, работает ли какой-либо 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.
Мне нужно было проверить запуск pid в проекте. Я принял этот ответ с помощью kill -0 <PID>
и завернул его в модуль под названием is-running https://npmjs.org/package/is-running
npm install is-running
Похоже, вы можете вызвать process.kill(pid, 0) и завернуть его в try/catch.
http://nodejs.org/api/process.html#process_process_kill_pid_signal - "Выбросит ошибку, если цель не существует, а в качестве особого случая сигнал 0 может использоваться для проверки существования процесса".
Я не эксперт здесь, но не могли бы вы создать дочерний процесс, чтобы проверить статус с помощью инструмента командной строки?