portess
v1.2.0
Published
Port and process management
Downloads
14
Maintainers
Readme
Portess
Port and process management
This library helps to find open ports and monitor, find and manage process states.
Installation
npm install --save portess
API
portess.port.isOpen(port)
Finds if the port is open. Return value will be a promise that will be yielded with a boolean result.
const portess = require('portess');
await portess.port.isOpen(3000); // true/false
/***************(or)**************/
portess.port.isOpen(3000)
.then( isOpen => {
console.log(`Port 3000 is %s`, isOpen?'open':'in use');
});
portess.port.get(?[ports])
Get a random open port (or) first available port from the given list. Retuns a promise that will be yielded with a port number.
const portess = require('portess');
await portess.port.get(); // Returns random port number - ex: 44450
await portess.port.get([3000, 3010, 4010]); // Returns first available port from the given list- ex: 3010 (if 3000 is in use)
/***************(or)**************/
portess.port.get()
.then( port => {
console.log(`Port %s is open`, port);
});
portess.port.get([3000, 3010,4010])
.then( port => {
console.log(`Port %s is open`, port);
});
portess.process.isRunning(pid)
Identifies if a process state is active. Returns boolean
const portess = require('portess');
portess.process.isRunning(55432); // true if the process is running
portess.process.kill(pid)
Kill a process by pid
const portess = require('portess');
portess.process.kill(55432); // false : If the process is not found
portess.monitor(ports...)
Monitor is an EventEmitter
that emits open
when a monitored port is available and close
when the port has closed.
var portess = require('portess');
var monitor = new portess.Monitor([8888,9999, 8082]);
monitor.on('open', function(port){
console.log('Port %s is open', port);
});
monitor.on('close', function(port){
console.log('Port %s is closed', port);
});
setTimeout(function(){
monitor.stop(); // Stops the monitoring after 5 seconds
}, 5000);
CLI
You can use portess
as a command line utility. You just have to install it globally as npm install -g portess
and run help command portess --help
to find the options and usage.
Usage: portess [options] [command]
Options:
-V, --version output the version number
-h, --help output usage information
Commands:
isOpen|o <port> Find if a port is open or closed
get|g Get an available port
isRunning|r <pid> Find if a process is active or not
kill|k <pid> Kill a process by pid
monitor|m <ports...> Monitor a list of ports and logs to the terminal when port state had changed