portess
v1.2.0
Published
Port and process management
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 runningportess.process.kill(pid)
Kill a process by pid
const portess = require('portess');
portess.process.kill(55432); // false : If the process is not foundportess.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
