Port and process management
This library helps to find open ports and monitor, find and manage process states.
npm install --save portess
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);
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