我读了node.js文档。它说:
即使这个函数的名称是process.kill(),它实际上只是一个信号发送者,作为kill系统调用。发送的信号可能会执行除杀死目标进程之外的其他操作。
console.log('当前进程id: ', process.pid);
process.on('SIGHUP', function() {
console.log('Got SIGHUP signal');
});
setTimeout(() => {
console.log('Exiting...');
process.exit(0); //kill process
console.log('已经退出进程id: ', process.pid); //does not output
}, 1000);
process.kill(process.pid, 'SIGHUP'); //does not kill process
console.log('正在退出进程id: ', process.pid); //so this output normally
输出:
当前进程id: 64520
正在退出进程id: 64520
Got SIGHUP signal
Exiting...
似乎process.exit(0)
是杀死node.js
进程的那个。
答案 0 :(得分:1)
使用process.exit()
,它以指定的代码结束进程。调用process.exit()
将强制进程尽快退出,即使仍有待处理的异步操作
<强>语法:强>
的 process.exit([code])
强>
链接:
答案 1 :(得分:1)
这一切都取决于您所处的环境。就像Gospal Joshi所说的$buttonOpenFilter.on(clickEvent, function(e) {
e.stopPropagation();
e.preventDefault();
var $this = $(this).parent();
var classOpen = 'open';
if ($this.hasClass(classOpen)) {
$this.removeClass(classOpen).css('max-height', 30);
} else {
$this.siblings().removeClass(classOpen).css('max-height', 30);
$this.addClass(classOpen).css('max-height', $this.find('ul').height() + 105);
}
});
对于快速结束该过程很有用。但是在其他情况下,您可能需要在关机之前将信号传递给该进程以进行清理/正常关机。例如,如果您正在听信号事件,例如:
process.exit([code])
它使您可以运行清理或正常关闭进程,而无需执行任何操作即可立即退出。
process.on('SIGINT', () => {
//do something
}
-Node Documentation
答案 2 :(得分:1)
process.kill(pid, [ code ])
适用于具有多个进程的并发应用程序(因为您只需插入要杀死的进程的 pid 即可)。
process.exit()
如果您没有需要杀死主节点进程以外的任何其他进程的用例,那么它就足够了,并且是最常见的。
就个人而言,我建议您使用 process.exit()
,除非您真的必须杀死另一个进程(pid 与 process.pid
不同)