Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Daemon management tool for configuring daemontools

branch: master

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 chef
Octocat-spinner-32 lib
Octocat-spinner-32 test
Octocat-spinner-32 Gemfile
Octocat-spinner-32 Gemfile.lock
Octocat-spinner-32 LICENSE
Octocat-spinner-32 Vagrantfile
Octocat-spinner-32 hellspawn.gemspec

Hellspawn is for spawning. It spawns processes using daemontools. It makes sure that you are running the processes you claim you want to be running.

legion = Hellspawn.legion :base => "/directory/for/services"
legion.summon :name => "daemon_name", :executable => "daemon executable path"

Now you have daemons.

Some other options: legion.summon :name => "thin", :by_flag => ["-p", [3000, 3001, 3002]], :executable => "/usr/local/bin/thin" legion.summon :name => "thin", :memory_limit_mb => 500, :executable => "/usr/local/bin/thin"

To log: legion = Hellspawn.legion :base => "/directory/for/services", :log_dir => "/directory_for_logs"

If you march a legion to a directory that already exists, it deletes everything from it first but it doesn't yet know how to stop currently running services in those directories

You can also use Hellspawn.summon and Hellspawn.march! to access your first legion. This is useful when writing chef scripts, so you can summon from anywhere without passing the legion around


Thanks to Affine Systems for sponsoring some of the development of this library

Something went wrong with that request. Please try again.