Вот мой код:
test.js
const {exec} = require("child_process")
var c = exec("php artisan serve", {
cwd: "C:/Users/DELL/Laravel Projects/lktest3"
}, (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
})
setTimeout(() => {
c.kill('SIGHUP')
}, 10000);
Когда я запускаю node test.js
, я получаю такую ошибку:
$ node test.js
internal/child_process.js:397
throw errnoException(err, 'kill');
^
Error: kill ENOSYS
at exports._errnoException (util.js:1018:11)
at ChildProcess.kill (internal/child_process.js:397:13)
at Timeout.setTimeout (C:\Users\DELL\Documents\laravel-kit\test.js:14:7)
at ontimeout (timers.js:386:14)
at tryOnTimeout (timers.js:250:5)
at Timer.listOnTimeout (timers.js:214:5)
Я написал этот код, как сказано в API дочерних процессов NodeJS. Но это не работает.
1
Tareque Md Hanif
2 Янв 2018 в 17:01
2 ответа
Лучший ответ
Я использовал модуль tree-kill, чтобы убить дочерний процесс в Windows.
Используйте это так:
var kill = require('tree-kill');
kill(your_child_process.pid, 'SIGKILL', function(err) {
// Do things
});
0
Tareque Md Hanif
3 Янв 2018 в 14:28
Используйте childProcess.spawn(command)
(docs ) вместо childProcess.exec
, поскольку "exec" создает новую оболочку и запускает команду в этой оболочке.
0
Kit Isaev
2 Янв 2018 в 18:45
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.