Node.js 检测到子进程退出
Node.js detect a child process exit
我在节点中工作,因为它是通过 visual studio 代码扩展发生的。我成功地创建了子进程并且可以根据命令终止它们。当进程意外退出时,我正在查看 运行 代码,这似乎是 "exit" 事件的目的,但我不清楚如何调用它,这是我正在使用的代码与,进程 运行s,但在退出时不 detect/log,请注意 output.append 是 visual studio 代码特定版本的 console.log():
child = exec('mycommand', {cwd: path},
function (error, stdout, stderr) {
output.append('stdout: ' + stdout);
output.append('stderr: ' + stderr);
if (error !== null) {
output.append('exec error: ' + error);
}
});
child.stdout.on('data', function(data) {
output.append(data.toString());
});
以下是我尝试过但在退出登录时不起作用的四件事:
child.process.on('exit', function(code) {
output.append("Detected Crash");
});
child.on('exit', function(code) {
output.append("Detected Crash");
});
child.stdout.on('exit', function () {
output.append("Detected Crash");
});
child.stderr.on('exit', function () {
output.append("Detected Crash");
});
查看 node.js source code for the child process module,.exec()
方法本身就是这样做的:
child.addListener('close', exithandler);
child.addListener('error', errorhandler);
而且,我认为 .on()
是 .addListener()
的快捷方式,因此您也可以这样做:
child.on('close', exithandler);
child.on('error', errorhandler);
我在节点中工作,因为它是通过 visual studio 代码扩展发生的。我成功地创建了子进程并且可以根据命令终止它们。当进程意外退出时,我正在查看 运行 代码,这似乎是 "exit" 事件的目的,但我不清楚如何调用它,这是我正在使用的代码与,进程 运行s,但在退出时不 detect/log,请注意 output.append 是 visual studio 代码特定版本的 console.log():
child = exec('mycommand', {cwd: path},
function (error, stdout, stderr) {
output.append('stdout: ' + stdout);
output.append('stderr: ' + stderr);
if (error !== null) {
output.append('exec error: ' + error);
}
});
child.stdout.on('data', function(data) {
output.append(data.toString());
});
以下是我尝试过但在退出登录时不起作用的四件事:
child.process.on('exit', function(code) {
output.append("Detected Crash");
});
child.on('exit', function(code) {
output.append("Detected Crash");
});
child.stdout.on('exit', function () {
output.append("Detected Crash");
});
child.stderr.on('exit', function () {
output.append("Detected Crash");
});
查看 node.js source code for the child process module,.exec()
方法本身就是这样做的:
child.addListener('close', exithandler);
child.addListener('error', errorhandler);
而且,我认为 .on()
是 .addListener()
的快捷方式,因此您也可以这样做:
child.on('close', exithandler);
child.on('error', errorhandler);