как убить запуск командной строки с child_process nodejs - PullRequest
0 голосов
/ 29 февраля 2020

как я могу это остановить, он продолжит работать после того, как я остановлюсь nodejs. Я пробую process.kill (), но не работаю

const process = require('child_process')
const child = process.exec('ping 8.8.8.8 -t')
setTimeout(()=>child.kill(2),10000)

после нескольких часов чтения nodejs документов, я нашел это для тех, у кого такая же проблема

const process = require('child_process')
const child = process.execFile('ping 8.8.8.8',['-t'],{cwd:'your working direct'})
setTimeout(()=>child.kill(2),10000)//now kill() working

1 Ответ

2 голосов
/ 29 февраля 2020

Я изменил ваш код, как показано ниже, для flu sh из-за ошибки:

const process = require('child_process')
const child = process.spawn('ping 8.8.8.8 -t') // instead of process.exec
setTimeout(() => {
    console.log(child.kill(2)) // --> false == failed
}, 10000);

child.on('error', (code, signal) => {
    console.log(`${code}`) // --> Error: spawn ping 8.8.8.8 -t ENOENT
});

Для команды ping требуется аргумент после -t (согласно терминалу: ping: option requires an argument -- t

...