sindresorhus/execa

Ability to kill all descendents of the child process

Closed

#96 opened on Jun 23, 2017

 (14 comments) (13 reactions) (0 assignees)JavaScript (219 forks)batch import
enhancementhelp wanted

Repository metrics

Stars
 (6,091 stars)
PR merge metrics
 (Avg merge 6d 18h) (6 merged PRs in 30d)

Description

When I'm working with child processes, I sometimes end up with detached processes running indefinitely after I've killed the direct child, which can lead to blocked ports and memory leaks.

I sometimes fix this by using a module like ps-tree to find out all the descendants PIDs, and then send all of them a kill command, but it feels messy. It would be nice if execa could provide a clean, cross-platform API for this.

Maybe something like this:

const execa = require('execa');

const child = execa('./something');

// ...

child.killTree().then(() => {
  console.log('all dead!');
});

Contributor guide