Понимаю, что тема уже объезжена не раз, но давайте еще раз подискутируем, что сейчас актуально для демонизации веб-серверов. В частности написанных на NodeJS.
Тема актуальна для продакш приложения, а не для запуска у себя локально на отладку. Большинство серверов у меня на Ubuntu, есть несколько на CentOS.
Сначала для демонизации я использовал forever. Но потом уперся в сложность запуска скриптов не из-под root (или вообще не возможность, уже не помню). Плюс сам скрипт запуска не очень простой (когда у тебя пара десятков разных приложений то это актуально).
Затем начал всё переписывать на upstart. Он в целом мне нравится, скрипты запускаются под нужным юзером, логи пишутся куда надо, версия node выбирается через nvm под каждого юзера (один юзер - один скрипт). Нет конечно команды restart, но это мелочи.
Недавно несколько новых серверов обновил до Ubuntu 16 и там мой любимый upstart перестал работать (танцевать с бубном не хочу). Пришлось переписать скрипты на Systemd. Конфиг демона очень простой и понятный. Только сразу столкнулся с несколькими проблемами:
1) версию node надо указывать руками (типа «/opt/nvm/versions/node/v6.2.0/bin/node» вместо просто «node»). При обновлении версии все скрипты придется править. Текущую версию от nvm он не видит (или я криворук).
2) Все логи пишутся в один файл (syslog). Мои сервера генерируют много отладочной инфы в логах (плюс много запросов), поэтому syslog очень быстро растолстеет. Вполне нормальное явление что один сервер генерит логов на 50-100 Мб в день (каждый день сжимаются logrotate). А если их 10 запущено то уже до гига в день. Как это будет жить в одном файле пока не знаю, но мне кажется это не лучшим образом скажется на скорости записи логов.
Поэтому вопрос:
В какую сторону идти, какому запускателю довериться чтобы не было проблем с будущем?