TransWikia.com

Не могу завершить дочерний процесс NODE.JS

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 то оно отработает как надо.

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP