javascript - 10秒后杀死一个子进程 - NodeJS
问题描述
我有以下代码:
const { spawn } = require('child_process');
const find = spawn('find', ['.', '-type', 'f']);
const wc = spawn('wc', ['-l']);
find.stdout.pipe(wc.stdin);
wc.stdout.on('data', (data) => {
console.log(`Number of files ${data}`);
});
wc.stderr.on('data', (data) => {
console.error(`stderr: ${data}`);
});
wc.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
我想在 10 秒后杀死wc
和子进程。find
我是 NodeJS 的新手......我怎么能做到这一点?
解决方案
您可以使用process.exit退出entire process
。在 10 秒的 setTimeout 上,可以调用process.exit(0)
setTimeout(process.exit, 10*1000, 0)
对于单个子进程使用 kill 方法。
例子:
setTimeout(() => {
wc.kill("SIGINFO")
}, 10*1000, 0)
推荐阅读
- android - 启用可访问性后未调用 onServiceConnected
- python - 删除 numpy 数组中的重复元组(直接相邻的元组)
- android - 防止字符被绘制为表情符号
- mysql - 如何使用 laravel 查询生成器选择连接子查询
- node.js - 永远运行几个脚本
- c++ - 来自精灵表的图像边界框
- java - 以时间格式计算两个小时之间的时间差 hh:mm:ss java
- json - 使用可编码解析 JSON 时出错
- c# - XmlSerializer 在定义为 XmlElement 的自闭合标记后将 null 设置为属性
- string - 使用 shell 脚本在文件中插入 CR 字符