PID дочернего процесса NodeJS не соответствует реальному процессу

Я использую окна, и я провожу этот эксперимент,

console.log( _.process.exec( "mongod --dbpath . --port 8083 --bind_ip 127.0.0.1" ).pid );

Проблема в том, что когда я выполняю команду списка задач, PID из этого вывода указывает на задачу командной строки, а не на задачу mongod.exe.

Есть ли способ получить реальный PID задачи mongod.exe?


person Richeve Bebedor    schedule 19.03.2013    source источник


Ответы (2)


Это потому, что mongod является дочерним процессом cmd, а tasklist не печатает дочерний процесс id.

Учитывая идентификатор родительского процесса, вы можете получить список его дочерних элементов с помощью wmi query:

wmic process where (ParentProcessId=CMD_PID) get Caption, ProcessId

Замените CMD_PID идентификатором родительского (cmd) процесса.

person fardjad    schedule 19.03.2013
comment
Я вижу дочерний процесс через tasklist.exe. Однако не знаю, как получить это и использовать в приложении Node. Мне нужно убить его с помощью PID позже. - person Naikrovek; 21.03.2013

Я смотрю на это сейчас и думаю, что мне нужно будет запустить process.pid в дочернем элементе и сообщить об этом родителю. Затем родитель должен отслеживать число на случай, если ребенка нужно будет убить.

Я надеялся, что это не будет так сложно?

person Bob Brunius    schedule 13.02.2015