[英]Why is process.kill() not killing the process?
我有兩個獨立的子進程正在運行,一個在啟動時啟動,另一個在“如果消息==='!exec')”中運行。 我想在第二個進程的開頭殺死第一個子進程(再次是“ if message ==='!exec')。當前所有其他程序都按計划運行,沒有錯誤,但是不幸的是,子進程1沒有終止(或可能是這樣,但是會自行重新啟動嗎?)在收到消息后。
var exec = require("child_process").exec;
var execFile = require('child_process').exec;
var newproc = execFile('/path/executable, function (error, stdout, stderr) {
if (error) {
throw error;
return;
}
});
client.on('chat', (channel, user, message, self) => {
if (message === '!exec') {
newproc.kill(); //here I am trying to kill child process 1
exec("/path/runtext.py", (error, stdout, stderr) => {
if (error) {
console.error(`exec error: ${error}`);
return;
}
console.log(`stdout: ${stdout}`);
console.log(`stderr: ${stderr}`);
});
}
});
你們是否知道為什么未終止該過程/我應該如何解決?
.kill不會直接殺死進程。 它向它發送一個SIGTERM,當進程正在等待磁盤I / O或網絡時,可以將其忽略。 一個更好的主意是將SIGKILL發送到該過程,但這可能很危險。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.