Я получаю неправильный pid с child_process.spawn

У меня есть проблема в приложении Electron, и я уменьшаю ее до простого файла testspawn.js, запускаемого в узле

var spawn = require('child_process').spawn,
exp  = spawn('explorer', ['d:'],{detached:true}); //same thing detached or not
console.log('Spawned child pid: ' + exp.pid);

Когда я запускаю узел testspawn.js, в каталоге D: отображается проводник, но консоль говорит: Spawned child pid: 5880,

НО диспетчер задач Windows говорит:

Как я хочу в конце, убейте исследователя, когда он мне больше не нужен, сейчас нужно иметь правильный пид. Что мне не хватает?, Полностью потерян...

2 ответа

Решение

В дополнение к моему последнему комментарию у меня нет всех ответов, но в моем случае есть обходной путь...

Не совсем уверен, что делает электрон, но процесс, который вы возвращаете, на самом деле является родителем процесса, который вы пытаетесь убить. Мне удалось успешно убить «фактический» процесс с помощью tree-kill . Если вы хотите получить фактический pid процесса-внука, вы можете использовать что-то вроде дерева процессов для перебора дерева процессов.

Другие вопросы по тегам