2011-09-29 5 views
0

나는 rvm을 사용합니다. rvm에는 ruby ​​1.9.2가 설치되어 있습니다.루비 - cronjob에로드 할 보석 없음

스크립트가있어서 터미널에서 제대로 실행됩니다. 저도 같은 스크립트 cron 작업을 썼다 :

27 * * * * su - sayuj -c 'cd /path/to/dir; /home/sayuj/.rvm/rubies/ruby-1.9.2-p136/bin/ruby script.rb >> /var/log/script.log 2>&1' 

은 그럼 어떤 보석이 오류를로드 할 수 없습니다 보여줍니다. 나는 cron이 rvm ruby ​​1.9.2를 언급하지 않는다고 생각한다.

어떻게이 문제를 해결할 수 있습니까?

+0

crontab에서 호출되는 래퍼 셸 스크립트에 스크립트를 넣으십시오. 그러면 디버깅에 도움이되고 문제를 해결할 수 있습니다. 단지 #!/bin/bash -x를 맨 위에 추가하고 env에 대한 호출 결과를 살펴보고 env를 실행하는 명령 행 결과와 비교하면됩니다. –

답변

1

cd /path/to/dir;을 실제 디렉토리로 변경해야합니다. 루비의 올바른 버전으로 설정,

rvm use 1.9.2 

그것은 당신이 디렉토리를 입력 할 때마다 실행됩니다 : 그런 다음, 안쪽이 내용 .rvmrc라는 이름의 파일을 만듭니다.

관련 문제