Subversion命令不由Ubuntu rc.local运行

时间:2010-03-10 22:38:08

标签: svn ubuntu startupscript

以下是基于ubuntu的autoscaling 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

当然它没有进入apache2重启,因为它在chown上出错了。但我确实发现,如果事先进行结账,并将rc.local svn命令设置为svn更新,它仍然不会运行svn命令,但会成功输出apache2 restart。

当我手动运行它们时,这些相同的svn命令工作正常,很奇怪,在rc.local中它们不会产生任何输出到logger但apache2重新启动的功能。

我也尝试使用sudo -u和不运行svn co和svn更新。

如何运行svn命令?完整的结账或更新。在这一点上,要么总比没有好!

2 个答案:

答案 0 :(得分:2)

我不知道为什么sudo会在这里造成问题,但您也可以使用su,其效果如下:

su nonRootUser -c "/usr/bin/svn co svn+ssh://user@svnserver.com/path/to/repo /var/www/html | logger"

答案 1 :(得分:0)

尝试使用chown的完整路径。

/bin/chown