Почему bluepill не мониторит мою задачу?

Случается страшное неприятное: падает процесс, поддерживающий работоспособность
вашего приложения и перестаёт ходить почта, обновляться данные и много чего ещё.
Узнаёте вы об этом из вопросов ваших пользователей, большая часть которых сводится
к фразе “почему, собственно?” Это если опустить все остальные, нецензурные слова.

Но, думаете вы себе, я же всё настроил, сказал bluepill, что вот мои процессы,
запускай их так-то и если процесс умер, запускай его снова? Возможно, что так
оно и есть, но процесс падает и не перезапускается. Так тоже бывает.

Что делать в этой ситуации? Первое, очевидное решение, которое мне в голову
пришло гораздо позже, чем должно было, посмотреть лог bluepill.
Там бывает много интересного, например сообщение о том, что приложение
слишком долго стартует и, возможно, оно не демонизировано.

Итак, что можно попробовать, в порядке убывания очевидности:

  • Посмотреть статус процессов запущенных от лица bluepill, командой bluepill status – если обнаружены процессы со статусом unmonitored – это то самое, что мы и будем пытаться исправить дальше
  • Добавить в dsl-блок соответствующих процессов вызов daemonize! если он ещё не там. Это бывает, сам видел
  • Если и после этого в логе пишется (дальше вольный перевод с английского) “Задача слишком долго стартует. Не буду её мониторить”, попробуйте добавить start_grace_time 30.seconds. Количество секунд варьируется по запросам запускаемого приложения. Чтобы примерно прикинуть, сколько потребуется, запустите приложение ручками и умножьте время запуска на полтора
  • Ещё раз посмотрите, что там в логах, проверьте статус, может уже всё хорошо
  • Вы, кстати, перезагружали bluepill после каждого изменения конфигурации? Если нет, самое время попробовать. Между прочим: команда bluepill stop и последующая bluepill start не приводят к перечитыванию конфигурации. Рекомендую bluepill quit и bluepill load /path/to/config_file.

Примерно этот список рекомендаций позволил бы мне сократить время копания
в гугле и попыток “заставить всё работать” примерно с часа до минут десяти,
или даже пяти :) Удачи.