With find-process, you can:
- find the process which is listening specified port
- find the process by pid
- find the process by given name or name pattern
We have covered the difference of main OS platform, including Mac OSX, Linux, Windows and Android (with Termux).
Install find-process as a CLI tool:
$ npm install find-process -gUsage:
Usage: find-process [options] <keyword>
Options:
-V, --version output the version number
-t, --type <type> find process by keyword type (pid|port|name)
-p, --port find process by port
-h, --help output usage information
Examples:
$ find-process node # find by name "node"
$ find-process 111 # find by pid "111"
$ find-process -p 80 # find by port "80"
$ find-process -t port 80 # find by port "80"
Example:
You can use npm to install:
$ npm install find-process --saveUsage:
const find = require('find-process');
find('pid', 12345)
.then(function (list) {
console.log(list);
}, function (err) {
console.log(err.stack || err);
})Promise<Array> find(type, value, [options])
Arguments
typethe type of find, support: port|pid|namevaluethe value of type, can be RegExp if type is nameoptionsthis can either be the object described below or boolean to just set strict modeoptions.strictthe optional strict mode is for checking port, pid, or name exactly matches the given one. (on Windows,.execan be omitted)options.logLevelset the logging level totrace|debug|info|warn|error. In practice this lets you silence a netstat warning on Linux.
Return
The return value of find-process is Promise, if you use co you can use yield find(type, value) directly.
The resolved value of promise is an array list of process ([] means it may be missing on some platforms):
[{
pid: <process id>,
ppid: [parent process id],
uid: [user id (for *nix)],
gid: [user group id (for *nix)],
name: <command/process name>,
bin: <execute path (for *nix)>,
cmd: <full command with args>
}, ...]
Find process which is listening port 80.
const find = require('find-process');
find('port', 80)
.then(function (list) {
if (!list.length) {
console.log('port 80 is free now');
} else {
console.log('%s is listening port 80', list[0].name);
}
})Find process by pid.
const find = require('find-process');
find('pid', 12345)
.then(function (list) {
console.log(list);
}, function (err) {
console.log(err.stack || err);
});Find all nginx process.
const find = require('find-process');
find('name', 'nginx', true)
.then(function (list) {
console.log('there are %s nginx process(es)', list.length);
});Find all nginx processes on Linux without logging a warning when run as a user who isn't root.
const find = require('find-process');
find('name', 'nginx', {strict: true, logLevel: 'error'})
.then(function (list) {
console.log('there are %s nginx process(es)', list.length);
});We're welcome to receive Pull Request of bugfix or new feature, but please check the list before sending PR:
- Coding Style Please follow the Standard Style
- Documentation Add documentation for every API change
- Unit test Please add unit test for bugfix or new feature
