Узел JS - Невозможно уничтожить процесс, выполняемый с дочерним процессом Exec - PullRequest
0 голосов
/ 07 мая 2019

Мы пытаемся завершить процесс браузера Chrome, запущенного с узлами child_process exec command

var process = cp.exec(`"chrome.exe" --app="..."`, () => {}); // working great

Но когда мы пытаемся

process.kill(); //nothing happens...

Относится ли процесс кхромовое окно или что то еще?если нет, как мы можем заполучить недавно открывшийся процесс Chrome Window, PID и т. д. ...?

Любая помощь будет отличной ...

Примечание. Мы попытались использовать NPM chrome_launcher, но это не помогло, поскольку мы не смогли открыть Chrome в режиме киоска без полноэкранного режима, но это проблема другого вопроса ...

Ответы [ 2 ]

0 голосов
/ 07 мая 2019

Попробуйте взломать PID

Мы можем запустить дочерние процессы с параметром {detached: true}, чтобы эти процессы не были присоединены к основному процессу, а перейдут в новую группу процессов.

Затем, используя метод process.kill(-pid) для основного процесса, мы можем уничтожить все процессы, которые находятся в одной группе дочернего процесса с одной и той же группой pid.В моем случае у меня есть только один процесс в этой группе.

var spawn = require('child_process').spawn;

var child = spawn('your-command', {detached: true});

process.kill(-child.pid);
0 голосов
/ 07 мая 2019

Я не могу добавить комментарий, поэтому говорю прямо в ответе:

Как убить процесс с помощью узла js

Если вы проверите ссылку выше, вам нужна библиотека следующим образом

https://www.npmjs.com/package/fkill

Пример использования взят из вопроса stackoverflow

const fkill = require('fkill');

fkill(1337).then(() => {
    console.log('Killed process');
});

fkill('Safari');

fkill([1337, 'Safari']);

Я также нашел эту библиотеку для проверки запущенных процессов

https://github.com/neekey/ps

...