Hivemind is a process manager for Procfile-based applications. At the moment, it supports Linux, FreeBSD, and macOS.
Procfile is a simple format to specify types of processes your application provides (such as web application server, background queue process, front-end builder) and commands to run those processes. It can significantly simplify process management for developers and is used by popular Platforms-as-a-Service, such as Heroku and Deis. You can learn more about the Procfile
format here or here.
There are some good Procfile-based process management tools, including foreman by David Dollar, which started it all. The problem with most of those tools is that processes you want to manage start to think they are logging their output into a file, and that can lead to all sorts of problems: severe lagging, losing or breaking colored output. Tools can also add vanity information (unneeded timestamps in logs). Hivemind was created to fix those problems once and for all.
See this article for a good intro and all the juicy details! Introducing Overmind and Hivemind
Hivemind uses pty
to capture process output. That fixes any problem with log clipping, delays, and TTY colors other process management tools may have.
If you would like a process management tool with a lot of features, including tmux support, restarting and killing individual processes and advanced configuration, you should take a look at Hivemind's big brother — Overmind!
brew install hivemind
You can download the latest release here.
You need Go 1.5 or later to build the project.
$ go get -u -f github.com/DarthSim/hivemind
Note: You need to set GO15VENDOREXPERIMENT=1
to build hivemind with Go 1.5.
Note: You can update Hivemind the same way.
Hivemind works with a Procfile
. It may look like this:
web: bin/rails server
worker: bundle exec sidekiq
assets: gulp watch
To get started, you just need to run Hivemind from your working directory containing Procfile
.
$ hivemind
If Procfile
isn't located in your working directory, you can specify the path to it:
$ hivemind path/to/your/Procfile
Run hivemind --help
to see other options.
Sergey "DarthSim" Aleksandrovich
Highly inspired by Foreman.
Many thanks to @antiflasher for the awesome logo.
Hivemind is licensed under the MIT license.
See LICENSE for the full license text.