簡體   English   中英

為什么process.kill()無法殺死進程?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM