node 杀死子进程
时间: 2023-07-01 21:24:47 浏览: 84
在 Node.js 中,可以使用 `child_process` 模块的 `spawn()` 或 `exec()` 方法创建子进程。要杀死子进程,可以使用子进程对象的 `kill()` 方法,该方法会向子进程发送一个信号来终止进程。
以下是一个示例代码,演示如何在 Node.js 中杀死一个子进程:
```javascript
const { spawn } = require('child_process');
const child = spawn('ls', ['-l']);
// 监听子进程的关闭事件
child.on('close', (code) => {
console.log(`子进程已退出,退出码 ${code}`);
});
// 5 秒后杀死子进程
setTimeout(() => {
child.kill();
}, 5000);
```
在这个示例代码中,我们创建了一个子进程,执行了 `ls -l` 命令,并监听了子进程的关闭事件。然后,我们使用 `setTimeout()` 方法在 5 秒后调用子进程的 `kill()` 方法来杀死子进程。
需要注意的是,`kill()` 方法接受一个参数,表示要发送的信号。默认情况下,该参数为 `'SIGTERM'`,表示终止进程。如果需要发送其他信号,可以在参数中指定信号的名称或编号。例如,要发送 `SIGINT` 信号,可以这样调用:
```javascript
child.kill('SIGINT');
```
另外,如果要向子进程发送其他命令,例如中断操作或停止操作,可以使用子进程对象的 `stdin` 属性来向子进程发送输入。例如,要向子进程发送 `CTRL+C` 中断信号,可以这样调用:
```javascript
child.stdin.write('\x03'); // 发送 CTRL+C 中断信号
```
注意,以上操作需要在子进程接收到数据的情况下才能生效。如果子进程没有启用 stdin,则无法通过此方法发送任何命令。