【问题标题】:Subversion commands not being run by Ubuntu rc.localUbuntu rc.local 未运行 Subversion 命令
【发布时间】:2010-03-12 03:23:06
【问题描述】:

这是我的 rc.local,用于基于 ubuntu 的自动缩放 amazon ec2 实例:(请注意,出于安全考虑,用户名、域和路径已更改)

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 中它们不会产生任何输出到记录器,而 apache2 restart 会。

我也尝试过使用 sudo -u 和不使用 svn co 和 svn update。

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

【问题讨论】:

    标签: svn ubuntu startupscript


    【解决方案1】:

    我不知道为什么sudo 在这里造成问题,但您也可以使用su,它的工作原理如下:

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

    【讨论】:

    • 做到了!谢谢你阻止了我的脱发! :)
    • 注意:我认为sudo不起作用的原因是它需要密码(没有TTY提示)。
    【解决方案2】:

    尝试使用 chown 的完整路径。

    /bin/chown
    

    【讨论】:

    • 实际上这不是 chown 没有运行的原因。 chown 只能更改那里的内容,并且由于 svn 没有进行结帐,因此我尝试 chown 的文件不存在。
    猜你喜欢
    • 2014-12-24
    • 2016-09-24
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 2019-11-08
    • 2018-07-17
    相关资源
    最近更新 更多