Stack Overflow на русском Asked by Paul Muller on March 2, 2021
Есть сервер node.js, при запуске которого должны запуститься несколько дочерних процессов на node.js
config.botScripts.forEach(async script => {
console.log(`${script.options} ${__dirname}${config.relativePath}${script.name}`)
const task = await childProcess.spawn('start', [`${script.options} ${__dirname}${config.relativePath}${script.name}`], {shell: true})
console.log(task.pid)
// ls.stdout.on("data", data => console.log(`stdout ${script.name}: ${data}`))
// ls.stderr.on("data", data => console.log(`stderr ${script.name}: ${data}`))
task.on('error', (error) => console.log(`error ${script.name}: ${error.message}`))
task.on("close", code => console.log(`child process ${script.name} exited with code ${code}`))
tasks.push(task)
})
Ну и они естественно запустились. А когда сервер тухнет их соответственно нужно убить, и тут я застрял. Последняя моя попытка:
process.stdin.resume()
const exitHandler = signal => {
console.log(tasks[0].pid)
tasks.forEach(task => childProcess.spawn('taskkill', [`/PID`,`${task.pid}`, '/f', `/T`]))
process.exit()
}
// process.on('exit', signal => exitHandler(signal))
process.on('SIGINT', signal => exitHandler(signal))
// process.on('uncaughtException', signal => exitHandler(signal))
Также пытался task.kill(1)
но никак. Заметка – если запускать notepad.exe то оно отработает как надо.
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP