2012-03-05 10 views
1

私はRubyスクリプトでunicorn_railsを開始しようとしている、と次の出力unicorn_railsをデーモンとして起動しようとすると、なぜRubyスクリプトが停止するのですか?

[1]+ Stopped     ./setup_rails.rb 
をスクリプトは次の行のスクリプトが停止し

%x[bash -ic "bash <(. ~/.bashrc); cd /home/www-data/rails_app; bundle exec unicorn_rails -p 8000 -E production -c /home/www-data/rails_app/config/unicorn.rb -D"] 

になったときに、スクリプト内の多くのコマンドを実行して生成した後

となり、Linuxプロンプトに戻ります。 "fg"と入力すると、スクリプトの実行が終了し、スクリプトが停止した行が実行され、unicornがデーモンとして起動します。

別のスクリプトで行を実行すると、スクリプトは停止せずに完了します。

UPDATE_1 -

Iソースの.bashrc以前のスクリプトに私がRVMをインストールし、それは私が次のものが正しい環境で実行するために取得するので、私が望むのであれば

%x[echo "[[ -s \"$HOME/.rvm/scripts/rvm\" ]] && source \"$HOME/.rvm/scripts/rvm\"" >> .bashrc] 
%x[bash -ic "bash <(. ~/.bashrc); rvm install ruby-1.9.2-p290; rvm 1.9.2-p290 --default;"] 

、RVMの正しいバージョンを実行ルビーと私は.bashrcに

エンドUPDATE_1

を調達する必要がバンドルします

ruby​​スクリプトがcontrol-Zが押されたように停止する原因は何ですか?

答えて

1

なぜそれが止まっているのか分かりませんが、私の一般的な経験則は、スクリプト内で.bashrcを使用しないことです。問題の原因になっているかもしれませんが、それ。スクリプトを次のように変更することができます。

$ vi setup_rails.sh 

#!/usr/bin/bash 

# EDIT from comments below 
# expanding from a one liner to a better script... 

$RVM_PATH=$HOME/.rvm/scripts 

# install 1.9.2-p290 unless it's installed 
$RVM_PATH/rvm info 1.9.2-p290 2&>1 >/dev/null || $RVM_SH install 1.9.2-p290 

# run startup command inside rvm shell 
$RVM_PATH/rvm-shell 1.9.2-p290 -c "cd /home/www-data/rails_app && bundle exec unicorn_rails -p 8000 -E production -c /home/www-data/rails_app/config/unicorn.rb -D" 

これは同じ結果をもたらすはずです。

+0

#Josh - なぜ私が.bashrcを調達しているかを説明するUPDATE 1を追加しました。 –

+0

私は... rvm ...私は非常に生産(またはちょうど約)の環境でrvmを使用することを避けます。しかし、それがあなたが撮影しているものなら、いくつかの選択肢があります。 (最初に、 'rvm-exec'をチェックアウトしたことはありませんでしたが、これはうまく動作することはありませんでしたが、' bundle exec' AFAIKのような動作をすると思われます。過去には、rvmをインストールするための完全なパスを持つrubyという単純なものがありました。醜いですが、うまくいくはずです。私は例を見つけようとしていますが、それを使ってからしばらくしていて、彼らは姿を消してしまったようです。 – jmervine

+0

さて、ちょっとした検索から、単に '$ HOME/.rvm/scripts/rvm install ruby​​-1.9.2-p290 2>/dev/null;を実行することができます。 $ HOME/.rvm/bin/rvm-shell ruby​​-1.9.2-p290 -c "cd/home/www-data/rails_app &&バンドルexec unicorn_rails -p 8000 -E production -c/home/www-data/rails_app /config/unicorn.rb -D "これはテストされていないか、それに近い* *動作するはずです。 – jmervine

関連する問題