spawnconst child = spawn('npm', ['start'], {cwd: '../default'})child, у нас будет объект, у него тоже есть pid, но этот pidотличается от pidзапущенного процессаfunction stopChild() {
child.kill()
}stopChild()child.kill()function stopChild() {
child.kill()
}
stopChild() - не остановит процесс
child.kill() - остановит процессchildв другие места для работы с ним?
import { spawn } from 'child_process'
const child = spawn('npm', ['start'], {cwd: '../default'})
child.stdout.on('data', (data) => {
data = data.toString()
console.log('data:', data)
})
child.on('close', (code) => {
console.log('close spawn process')
})
process.on('SIGHUP', () => {
console.log('process sighup')
})
process.on('error', err => {
console.log('process error', err.message)
})
function stopChild() {
console.log('stopd child')
child.kill()
}
// Имитирую событие, что через 3 сек. к нам придет запрос на остановку запущенного процесса.
setTimeout(() => {
stopChild() - так не остановит процесс
}, 3000)
// child.kill() - так остановит процесс
// Сервер, который будет принимать запросы и по ним начнет запускать или останавливать приложения.
// Для тестирования запущен обычный сервер, чтобы скрипт не остановился.
import http from 'http'
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hello World\n');
}).listen(8124); child, что данный объект существует, но те свойства pid, которые я в нем могу найти, они не те, которыми можно его остановить через process.kill(pid)