Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Monitor a group of processes with mon

branch: master
README.md

mongroup

mongroup is a wrapper for mon. It allows you to create easily monitor a group of processes.

Installation

make install

One-liner:

(mkdir /tmp/mongroup && cd /tmp/mongroup && curl -L# https://github.com/jgallen23/mongroup/archive/master.tar.gz | tar zx --strip 1 && make install)

Usage

Usage: mongroup [options] [command]

Options:

    -c, --config <path>  set config path. defaults to ./mongroup.conf
    -V, --version        output program version
    -h, --help           output help information

Commands:

    start [app]          start [app] or all apps
    restart [app]        restart [app] or all apps
    stop [app]           stops [app] or all apps
    status               shows the status of all running apps
    log [app]            tail the [app]'s log or all apps
    logf [app]           tail -f the [app]'s log or all apps
    update               update mongroup to the latest version

Config File

A config file lets you define what process you want to run in your mongroup. It also lets you set the directories for where your pids and logs are stored. Here is an example config file:

    pids = /var/run/
    logs = /var/log/
    on-error = ./alert error
    on-restart = ./alert restart
    web = node server 8001
    web2 = node server 8002
    redis = redis-server

Failure Hooks

Mongroup leverages mon(1)'s --on-error <cmd> and --on-restart <cmd> flags to facilitate reporting and alerting. For example here's a simple non-useful node script outputting to stdio:

#!/usr/bin/env node

console.log(process.argv);

/*

example:

[ 'node',
  '/Users/tj/projects/mongroup/example/alert.js',
  'restart',
  'web2',
  '58119' ]

*/
Something went wrong with that request. Please try again.