Как запустить unicorn_rails в качестве сценария запуска с установленным rvm на моей машине с Ubuntu 12.04?

У меня есть приложение rails на моем сервере. У меня есть скрипт startup.sh, который запускает unicorn_rails, а затем nginx.

Чтобы мой сервер запускался при загрузке системы, я добавил строку для вызова моего сценария запуска в /etc/rc.local.

Тем не менее, это не работает. Я добавил несколько проверок, чтобы убедиться, что скрипт вызывается и он есть. Это вызов unicorn_rails, который, я думаю, не работает. У кого-нибудь есть опыт с этим?

2 ответа

Решение

Это оказалось проблемой с правами пользователя. Unicorn, ruby ​​и rails были установлены как мой обычный логин, когда скрипт запускался от имени пользователя root. Это создало проблемы с установленными драгоценными камнями, не видимыми для пользователя root. Я решил проблему, вызвав второй скрипт с 'su' в качестве моего обычного пользователя без полномочий root.

Я столкнулся с той же проблемой и смог решить ее, создав скрипт init.d для unicorn_rails, а затем включив его при запуске с помощью chkconfig.

chmod +x /etc/init.d/unicorn
chkconfig unicorn on

Пример сценария init.d для unicorn_rails. https://github.com/wayneeseguin/rvm/blob/master/contrib/unicorn_init.sh

Единственное серьезное изменение, которое я сделал в своем сценарии, - добавление вызовов службы nginx в блоки действий. Таким образом, когда вы запускаете / останавливаете / перезапускаете или запускаете состояние на unicorn_rails, nginx следует этому примеру.

Другие вопросы по тегам