📜  如何在 nodejs 中检测 ctrl+C - Javascript (1)

📅  最后修改于: 2023-12-03 15:38:22.101000             🧑  作者: Mango

如何在 Node.js 中检测 Ctrl+C

在 Node.js 中,我们可以通过 process 模块的 SIGINT 事件来检测 Ctrl+C 信号。当用户按下 Ctrl+C 时,操作系统将会发送 SIGINT 信号给进程,我们可以通过监听 SIGINT 事件来捕获这个信号并执行相应的操作。

监听 SIGINT 事件

要监听 SIGINT 事件,可以在 Node.js 程序中加入以下代码:

process.on('SIGINT', () => {
  console.log('Received SIGINT. Press Control-D to exit.');
  // 在这里执行你的清理代码
});

其中 process.on 表示注册一个事件监听器,第一个参数是事件名称,第二个参数是事件处理函数。在这里,我们注册了一个 SIGINT 事件监听器,在事件处理函数中打印一条信息,并执行了一个清理代码的占位符。

退出程序

当监听到 SIGINT 事件时,我们可以使用 process.exit 方法来退出程序。例如:

process.on('SIGINT', () => {
  console.log('Received SIGINT. Exiting...');
  process.exit(0);
});

其中,process.exit(0) 表示正常退出程序,如果你需要在退出时返回一个非零的退出码,可以将 0 修改为其他数字。

示例代码

以下是一个完整的示例代码:

process.on('SIGINT', () => {
  console.log('Received SIGINT. Exiting...');
  // 在这里执行你的清理代码
  process.exit(0);
});

console.log('Press Control-C to exit.');

以上代码会输出一条提示信息,等待用户按下 Ctrl+C。当检测到 SIGINT 信号时,会打印一条退出信息,并执行清理代码,最后正常退出程序。