0

これは、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 コマンドを実行するにはどうすればよいですか? 完全なチェックアウトまたは更新のいずれかです。この時点で、どちらかが何もないよりはましです。

4

2 に答える 2

2

sudoここで問題が発生する理由はわかりませんがsu、 を使用することもできます。これは次のように機能します。

su nonRootUser -c "/usr/bin/svn co svn+ssh://user@svnserver.com/path/to/repo /var/www/html | logger"
于 2010-03-11T19:23:06.930 に答える
0

フルパスを使用してchownしてみてください。

/bin/chown
于 2010-03-11T18:22:29.760 に答える