Tree Kill
Kill all processes in the process tree, including the root process.
Examples
Kill all the descendent processes of the process with pid 1
, including the process with pid 1
itself:
var kill = require('tree-kill');
kill(1);
Send a signal other than SIGTERM.:
var kill = require('tree-kill');
kill(1, 'SIGKILL');
Run a callback when done killing the processes. Passes an error argument if there was an error.
var kill = require('tree-kill');
kill(1, 'SIGKILL', function(err) {
// Do things
});
You can also install tree-kill globally and use it as a command:
tree-kill 1 # sends SIGTERM to process 1 and its descendents
tree-kill 1 SIGTERM # same
tree-kill 1 SIGKILL # sends KILL instead of TERMINATE
Methods
require('tree-kill')(pid, [signal], [callback]);
Sends signal signal
to all children processes of the process with pid pid
, including pid
. Signal defaults to SIGTERM
.
For Linux, this uses ps -o pid --no-headers --ppid PID
to find the parent pids of PID
.
For Darwin/OSX, this uses pgrep -P PID
to find the parent pids of PID
.
For Windows, this uses 'taskkill /pid PID /T /F'
to kill the process tree. Note that on Windows, sending the different kinds of POSIX signals is not possible.
Install
With npm do:
npm install tree-kill
License
MIT
Changelog
[1.2.2] - 2019-12-11
Changed
- security fix: sanitize
pid
parameter to fix arbitrary code execution vulnerability
[1.2.1] - 2018-11-05
Changed
- added missing LICENSE file
- updated TypeScript definitions
[1.2.0] - 2017-09-19
Added
- TypeScript definitions
Changed
kill(pid, callback)
works. Before you had to usekill(pid, signal, callback)
[1.1.0] - 2016-05-13
Added
- A
tree-kill
CLI
[1.0.0] - 2015-09-17
Added
- optional callback
- Darwin support