2012-06-14 3 views
0

su 명령과 다른 스크립트를 통해 다른 사용자의 루비 스크립트를 실행하는 가장 좋은 방법은 무엇입니까?Ruby RVM Bash 스크립트의 다른 사용자 아래

나는 시작 유니콘에 대해 다음 명령으로 bash는 스크립트가 있습니다

sudo -u unicornuser sh -l -c "bundle exec unicorn_rails -E production -D" 

이 스크립트는 있는 init.d 스크립트입니다 그것은 때 시스템이 시작되고 수동으로도 실행되고.

시스템의 기본 루비가 1.8이고 RVM에서 다른 루비 (1.9)가 작동하는 것이 문제입니다. 나는 RVM 지금이 표기 마이그레이션 한

(와이드 비 시스템)와 rubt을 실행할 수있는 스크립트 위에 수정해야합니다 이것은 나를 위해 일한

su -l -c "rvm use ruby-1.9.3-p125 && bundle exec unicorn_rails -E production -D" unicornuser 

,하지만 난이 있어야합니다 생각 이것을하는 더 좋은 방법.

답변

1

당신은 사용해야 래퍼 :

rvm wrapper ruby-1.9.3-p125 ext_1.9.3 bundle 

이 그래서 지금 당신이 사용할 수있는, $rvm_path/bin/ext_1.9.3_bundle 만듭니다 :

/full/path/to/rvm/bin/ext_1.9.3_bundle exec unicorn_rails -E production -D 

echo $rvm_path

에서 출력 /full/path/to/rvm 교체