Запустить «старт пассажира» из сценария оболочки? - PullRequest
2 голосов
/ 27 марта 2012

По сути, «запуск пассажира» отлично работает с терминала, но простой скрипт, такой как «запуск пассажира», не работает, потому что он не работает с:

*** Exception PhusionPassenger::UnknownError in PhusionPassenger::Rack::ApplicationSpawner (Could not find abstract-1.0.0 in any of the sources (Bundler::GemNotFound)) (process 19278, thread #<Thread:0x7f16dbfaf368>):

Похоже, я больше не могу найти драгоценные камни. Кажется, это очень распространенная проблема в Google, но я не могу найти простой ответ. Я не хочу, чтобы обезьяна исправила мое приложение rails следующим образом: http://blog.ninjahideout.com/posts/the-path-to-better-rvm-and-passenger-integration (который я все равно не мог заставить работать)

Кажется невероятным, что не существует простого способа справиться с этим. Почему запуск пассажира из сценария оболочки отличается от ввода его вручную?


ОБНОВЛЕНИЕ: в основном, я исправил это, не используя пассажира. Вместо того, чтобы использовать «пассажирский старт», я теперь использую «сервер рельсов», и он работает нормально. Теперь, очевидно, это не «решает» проблему, с которой я столкнулся, но этого достаточно для моих потребностей в разработке.

Я также хотел бы немного рассказать о моей настройке, потому что я думаю, что был немного расплывчатым.

По сути, у меня был этот скрипт с именем start_rails.sh

#!/bin/bash
cd /rails/app
passenger start

Это не сработало, и я попробовал все под солнцем, включая поиск всех моих файлов bash, и ничего не получалось. Я изменил это на:

#!/bin/bash
source "$HOME/.rvm/scripts/rvm"
cd /rails/app
rails s

И теперь это работает. Я могу запустить его из сценария выскочки:

start on started mysql
exec sudo -u ubuntu -i /home/ubuntu/bin/start_rails.sh

Однако «запуск пассажиров» все еще не работает, никогда не работает, и я думаю, что никогда не будет = PI все еще не знает, почему нет способа запустить сценарий оболочки и сказать ему «запустить его точно так, как если бы я набирал его вручную ", потому что просто набрать" старт пассажира "работает. Из сценария оболочки это не так. Ну что ж. Жизнь продолжается.

1 Ответ

1 голос
/ 27 марта 2012

Если вы можете без проблем управлять пассажиром вручную, вы сейчас находитесь в хорошем положении :). Я думаю, что есть некоторые проблемы с переменными среды, которые устанавливаются при входе в систему, но не при запуске сценария. Попробуйте добавить эти две строки в начале вашего скрипта:

source ~/.bash_profile
source ~/.bashrc
...