これは、ubuntu に基づく自動スケーリング amazon ec2 インスタンスの rc.local です: (ユーザー名、ドメイン、およびパスは、セキュリティ上の目的で変更されていることに注意してください)
logger "Begin rc.local startup script:"
logger "svn checkout"
sudo -u nonRootUser /usr/bin/svn co svn+ssh://user@svnserver.com/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
そして、これが sudo tail -n 40 /var/log/syslog の出力です
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でエラーが発生したため、apache2の再起動には至りません。ただし、事前にチェックアウトを行い、rc.local svn コマンドを svn update に設定すると、svn コマンドは実行されませんが、apache2 の再起動が正常に出力されることがわかりました。
これらの同じsvnコマンドは、手動で実行すると完全に機能しますが、rc.local内でロガーへの出力がまったく生成されないのにapache2の再起動が行われるのは奇妙です。
また、sudo -u を使用する場合と使用しない場合の両方で、svn co と svn update を実行してみました。
svn コマンドを実行するにはどうすればよいですか? 完全なチェックアウトまたは更新のいずれかです。この時点で、どちらかが何もないよりはましです。