У меня возникла очень странная проблема со сценарием, который я запускаю на своем сервере, подробности ниже. Но по существу я использую скрипт для настройки приложения rails, и я вызываю этот скрипт из существующего приложения rails.Запуск RAILS_ENV = создание с системной командой
В моем существующем приложении (приложение, которое звонит скрипт на сервере) у меня есть: -
Spawnling.new do
system "cd ~/ && ~/*/create_site.sh param1 param2 >> /tmp/logger"
end
Скрипт create_site.sh создает новую установку рельсов, используя ниже:
rails new $DIR --database postgresql
Затем он выполняет ряд действий по настройке приложения. Вопрос заключается в том, что сценарий, кажется, бежит абсолютно нормально, пока не доберется до следующей команды:
cd $DIR && RAILS_ENV=production rails g roroacms:install -v && RAILS_ENV=production rake assets:clean && RAILS_ENV=production rake assets:precompile
Это действительно странно, потому что, когда я запускаю верхнюю команду вручную, так как корневой пользователь, кажется, работать абсолютно нормально без каких-либо проблемы вообще. При просмотре файла регистратор в конце верхней команды она выглядит следующим образом:
Your bundle is updated!
Bundle is installed and up to date
RoroaCMS installation
Installation complete with assets
Server started
Когда я запускаю это вручную выводит ряд сообщений между каждой строкой, в которой она выполняется командой. Есть идеи по этому поводу? Я думаю, что это может быть связано с RAILS_ENV, поскольку новая команда rails запускается в скрипте раньше.
Вы используете скрипт как root? – Travis
Хорошо, когда я запускаю его вручную как root, он работает правильно, но когда я запускаю команду в cron или в приведенной выше команде, она терпит неудачу в рельсах g roroacms: install Я думаю, что это может быть связано с этим, но нет сообщение об ошибке, поэтому очень сложно отлаживать –