60 lines
1.5 KiB
Markdown
60 lines
1.5 KiB
Markdown
|
|
||
|
## CLI
|
||
|
|
||
|
Adds a command-line interface to your cluster.
|
||
|
|
||
|
### Usage
|
||
|
|
||
|
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
|
||
|
|
||
|
### Defining CLI Commands
|
||
|
|
||
|
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');
|