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: ```js var kill = require('tree-kill'); kill(1); ``` Send a signal other than SIGTERM.: ```js 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. ```js 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: ```sh 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](https://npmjs.org) 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 use `kill(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