Я написал скрипт для запуска моего приложения rails. Он включает в себя множество сервисов, поэтому я хочу использовать этот скрипт всякий раз, когда перезагружаю свой компьютер.
Сценарий довольно прост, он использует cd <some-folder>
и затем запускает определенную там службу. Например, я запускаю druid следующим образом:
cd ~/apache-druid-0.16.0-incubating
./bin/start-micro-quickstart 1>~/log/druid.log 2>&1 &
sleep 10
Сон несколько произвольный, но я знаю, что этого достаточно.
Когда я хочу запустить службу rails, она терпит неудачу.
cd ~/my-app
rails s &
Журналы показывают эту ошибку:
/home/alexis/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/bundler/definition.rb:495:in `validate_ruby!': Your Ruby version is 2.6.3, but your Gemfile specified 2.5.3 (Bundler::RubyVersionMismatch)
from /home/alexis/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/bundler/definition.rb:470:in `validate_runtime!'
from /home/alexis/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/bundler.rb:101:in `setup'
from /home/alexis/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/bundler/setup.rb:20:in `<top (required)>'
from /home/alexis/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /home/alexis/.rvm/rubies/ruby-2.6.3/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from bin/rails:3:in `require_relative'
from bin/rails:3:in `<main>'
Это ясно говорит мне, что cd ~/my-app
не работал должным образом. То есть, когда я делаю это в своей оболочке bash, я получаю сообщение, подобное этому:
alexis@my-vps:~ $ cd my-app/
RVM used your Gemfile for selecting Ruby, it is all fine - Heroku does that too,
you can ignore these warnings with 'rvm rvmrc warning ignore /home/alexis/my-app/Gemfile'.
To ignore the warning for all files run 'rvm rvmrc warning ignore allGemfiles'.
alexis@my-vps:~/my-app $ _
, и я знаю, что это настраивает среду, так что мое приложение rails запускается, как и ожидалось (с правильной версией Rubyи другие инструменты).
Как мне повторить поведение команды cd
в моем сценарии оболочки?