Node.js kill child_进程的回调
我使用Node.js kill child_进程的回调,node.js,child-process,Node.js,Child Process,我使用server=child_process.spawn('node',['app.js'])启动节点服务器。 我通过执行server.kill('SIGKILL')来终止这个进程 我想在app.js中进行一些清理,比如关闭数据库连接,在服务器进程被终止之前,我该如何进行清理?捕获事件并在内部进行清理。另外,使用SIGTERM,因为SIGKILL不能被缓存为指针 这必须在app.js文件中完成。您可以使用该模块。使用它,您可以提供一个回调,该回调将在进程终止后被调用 const { spawn
server=child_process.spawn('node',['app.js'])
启动节点服务器。
我通过执行server.kill('SIGKILL')来终止这个进程代码>
我想在app.js
中进行一些清理,比如关闭数据库连接,在服务器进程被终止之前,我该如何进行清理?捕获事件并在内部进行清理。另外,使用SIGTERM,因为SIGKILL不能被缓存为指针
这必须在app.js文件中完成。您可以使用该模块。使用它,您可以提供一个回调,该回调将在进程终止后被调用
const { spawn } = require('child_process');
const kill = require('tree-kill');
const server = spawn('node', ['app.js']);
kill(server.pid, 'SIGKILL', function(err) {
// Do things
});
但是SIGKILL不能被抓到,这个过程将在这可能之前结束。但是SIGTERM会起作用。got错误:uv\u信号\u启动EINVAL
,如下所述:Nice catch@DanD。我会在答覆中加入一项建议。
const { spawn } = require('child_process');
const kill = require('tree-kill');
const server = spawn('node', ['app.js']);
kill(server.pid, 'SIGKILL', function(err) {
// Do things
});