90 lines
1.9 KiB
Markdown
90 lines
1.9 KiB
Markdown
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
|