Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Cognizant is a process management framework inspired from God and Bluepill.
branch: master
Failed to load latest commit information.
bin Require version.rb for `cognizant`
examples Daemonize processes by default.
features Add Coveralls for tests
lib Version 0.0.3
.gitignore Add Rubinius build directory to .gitignore
.travis.yml Not going to implement jruby rubies. So remove from travis opts.
.yardopts Add the project logo
Gemfile Add Coveralls for tests Add a load option to daemon configuration file for loading ruby based…
Rakefile Use features as rake task name for cucumber tests.


Simple and reliable process monitoring framework written in Ruby

Gem Version Dependency Status Code Climate Build Status Coverage Status

Quick start

Install Cognizant
$ gem install cognizant
Example thin server cluster configuration
$ vim
app_root = "/apps/"
servers = 5
port = 4000

Cognizant.application "" do |app|
  servers.times do |n|
    app.monitor "thin-#{n}" do
      group "thin"
      uid "www-data"
      gid "www-data"

      env RACK_ENV: "production"
      chdir "#{app_root}/current"

      daemonize false
      pidfile "#{app_root}/shared/tmp/pids/thin.400#{n}.pid"

      start_command   "bundle exec thin start   --only #{n} --servers #{servers} --port #{port}"
      stop_command    "bundle exec thin stop    --only #{n} --servers #{servers} --port #{port}"
      restart_command "bundle exec thin restart --only #{n} --servers #{servers} --port #{port}"

      check :flapping, times: 3, within: 1.minute, retry_after: 15.seconds, retries: 10
      check :transition, from: :running, to: :stopped do |process|
        `say a thin server has stopped` # send an email, etc.

      check :cpu_usage,    above: 50.percent,    every: 5.seconds, times: 5,      do: :restart
      check :memory_usage, above: 300.megabytes, every: 5.seconds, times: [3, 5], do: :restart

YAML version of this example is available in the wiki.

Start the daemon and load the configuration
$ cognizantd
$ cognizant load
Enter the Cognizant shell and view the status of managed processes
$ cognizant
Welcome Gurpartap! You are speaking to the Cognizant Monitoring Daemon.
Enter 'help' if you're not sure what to do.

Type 'quit' or 'exit' to quit at any time.
> use
(> status
| Process | Group | State                  | PID   | % CPU | Memory |
| thin-0  | thin  | running since 1 minute | 59825 | 0.0   | 47 MiB |
| thin-1  | thin  | running since 1 minute | 59828 | 0.0   | 47 MiB |
| thin-2  | thin  | running since 1 minute | 59829 | 0.0   | 47 MiB |
2013-03-18 10:00:29 +0530

Further information

Cognizant has an extensively documented wiki for that.


Cognizant is a project of Gurpartap Singh. Feel free to get in touch.

Something went wrong with that request. Please try again.