1 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊
好吧,我設(shè)法以一種相當(dāng)古怪的方式解決了這個(gè)問(wèn)題。我發(fā)現(xiàn)在 Windows 上其他地方提供的答案確實(shí)有效(即):
for (var id in cluster.workers) {
cluster.workers[id].kill();
}
然而在 Linux 上,即使終止 master,進(jìn)程仍然會(huì)運(yùn)行。如果您像我一樣并且對(duì)您的孩子使用阻止代碼,則它將不起作用(無(wú)論出于何種原因,我也無(wú)法在函數(shù)中添加超時(shí))。
我解決這個(gè)問(wèn)題的方法是獲取循環(huán)內(nèi)所有剩余工作人員及其 pid 的列表,就像以前一樣,只是這次使用 process.kill 和剩余工作人員的 pid (如下所示:)
for (var id in cluster.workers) {
console.log("Killing remaining processes");
let process_id = cluster.workers[id].process.pid;
process.kill(process_id);
}
這個(gè)解決方案很hacky,但它有效,而且例子非常有限,所以我希望這可以幫助別人。
添加回答
舉報(bào)