Нам понравился supervisor. И для dev, и для production. Работает как master процесс, которые стартует и перестартует любые приложения, в т.ч. и такие, как node.js.
supervisord.org
OpenSource на гитхабе:
https://github.com/Supervisor/supervisor
Есть всякие web морды:
https://github.com/Jahaja/supervisor-webctl
Написан на питоне, но это ему не мешает ни сколько.
Что умеет из коробки:
Удобное API для работы (поэтому и есть возможность писать веб морды),
Позволяет перенаправлять стандартные потоки IO, запускает как надо и под нужным пользователем,
Сам перезапускает сервисы при падении,
Позволяет проверять запущенные сервисы и удаленно, и через ctl, и через всякие third-party приложения,
Позволяет собирать конфиг из кусочков, в т.ч. по wildcard, как апач/nginx, и тем самым дает возможность иметь отдельные конфиги для каждого приложения,
Документация,
Ну и проект живой, это очень важно
https://github.com/Supervisor/supervisor/commits/master
Очень удобно использовать вместе с чем-то типа капистрано.
Единственное, что нам не понравилось — это то, что его самого (мастер процесс) приходится запускать от рута, чтобы иметь возможность запускать процессы из под других пользователей. Но это сложно обойти на уровне безопасности самого юникса, поэтому, забили.