2010-03-10 2 views
0

여기 우분투에 따라 배율이 자동 아마존 EC2 인스턴스 내 rc.local 파일입니다 우분투 rc.local에 의해 실행되지 않는 명령 :Subversion은

logger "Begin rc.local startup script:" 

logger "svn checkout" 
sudo -u nonRootUser /usr/bin/svn co svn+ssh://[email protected]/path/to/repo /var/www/html | logger 

logger "chown writeable folder" 
chown www-data /var/www/html/writeableFolder 

logger "restart apache" 
/etc/init.d/apache2 restart | logger 

exit 0 
을 (사용자 이름, 도메인 및 경로는 보안을 위해 변경되었습니다 참고)

그리고 여기가/시스템 로그 물론

Mar 10 22:05:20 ubuntu logger: Begin rc.local startup script: 
Mar 10 22:05:20 ubuntu logger: svn checkout 
Mar 10 22:05:20 ubuntu logger: chown writeable folder 

는 chown 시스템에 error'd 때문에 아파치를 다시 시작을 못하고/로그 (40)/var에 -n sudo는 꼬리의 출력입니다. 그러나 내가 사전에 체크 아웃을하고 rc.local svn 명령을 svn 업데이트로 설정하면 여전히 svn 명령을 실행하지 않지만 apache2를 성공적으로 다시 시작한다는 것을 알았습니다.

이 수동 svn 명령은 수동으로 실행할 때 완벽하게 작동합니다. 즉, rc.local 내에서 로거에서 출력을 생성하지 않고 apache2를 다시 시작하지 않는 것이 이상합니다.

나는 sudo -u와 함께 svn co 및 svn 업데이트를 실행 해 보았습니다.

svn 명령을 실행하려면 어떻게해야합니까? 전체 체크 아웃 또는 업데이트. 이 시점에서 어느 것이 더 나은 것보다 낫지 않을 것입니다!

답변

2

sudo 여기에 문제를 일으키는 이유는 모르겠지만, 당신은 또한이 같은 일 것이다, su를 사용할 수 있습니다

su nonRootUser -c "/usr/bin/svn co svn+ssh://[email protected]/path/to/repo /var/www/html | logger" 
+0

그랬어! 내 머리카락 손실을 중단 해 주셔서 감사합니다! :) – talentedmrjones

+0

참고 : sudo가 작동하지 않는 이유는 암호가 필요하다는 것입니다 (프롬프트 할 TTY가 없음). – sandstrom

0

chown의 전체 경로를 사용해보십시오.

/bin/chown 
+0

은 실제로는 대한 Chown가 실행되지 않는 이유가 아닙니다. chown은 단지 거기에있는 것을 바꿀 수 있고, svn이 체크 아웃을하지 않았기 때문에 내가 chown하려고하는 파일은 존재하지 않습니다. – talentedmrjones

관련 문제