首页 > 解决方案 > 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 的新手......我怎么能做到这一点?

标签: javascriptnode.js

解决方案


您可以使用process.exit退出entire process。在 10 秒的 setTimeout 上,可以调用process.exit(0)

setTimeout(process.exit, 10*1000, 0)

对于单个子进程使用 kill 方法。

subprocess.kill([信号])

例子:

setTimeout(() => {
  wc.kill("SIGINFO")
}, 10*1000, 0)

推荐阅读