suコマンドを使用して別のユーザーの下で、別のスクリプトからrubyスクリプトを起動する最良の方法は何ですか?
ユニコーンを起動するための次のコマンドを含む bash スクリプトがあります。
sudo -u unicornuser sh -l -c "bundle exec unicorn_rails -E production -D"
このスクリプトはinit.dスクリプトであり、システムの起動時および手動でも実行されます。
問題は、システムのデフォルトの ruby が 1.8 で、他の ruby (1.9) が RVM で動作していることです。RVMでRubyを実行できるように上記のスクリプトを変更する必要があります(システム全体ではありません)
今、私はこの表記のために移行しました:
su -l -c "rvm use ruby-1.9.3-p125 && bundle exec unicorn_rails -E production -D" unicornuser
これは私にとってはうまくいきましたが、これを行うためのより良い方法があるに違いないと思います。