Adds a command-line interface to your cluster.
This plugin requires that you use pidfiles()
above cli()
, so that the pidfile directory
is exposed.
cluster(server)
.use(cluster.pidfiles())
.use(cluster.cli())
.listen(3000);
Once set up our server script serves as both the master, and the CLI. For example we may still launch the server(s) as shown below.
$ nohup node server.js &
However now we may also utilize commands provided by this plugin.
$ node server.js status
master 3281 alive
worker 0 3282 dead
worker 1 3283 alive
worker 2 3284 alive
worker 3 3285 alive
$ node server.js restart
$ node server.js shutdown
For more command information use --help
.
$ node server.js --help
Plugins may define additional commands, simply by invoking cluster.cli.define()
passing the flag(s), a callback function,
and a description. Below is the implementation of --help
for reference:
var cli = require('cluster').cli;
cli.define('-h, --help, help', function(master){
console.log('\n Usage: node <file> <command>\n');
commands.forEach(function(command){
console.log(' '
+ command.flags.join(', ')
+ '\n '
+ '\033[90m' + command.desc + '\033[0m'
+ '\n');
});
console.log();
process.exit();
}, 'Show help information');