代码之家  ›  专栏  ›  技术社区  ›  talentedmrjones

subversion命令未由ubuntu rc.local运行

  •  0
  • talentedmrjones  · 技术社区  · 16 年前

    下面是我的rc.local,用于基于Ubuntu的自动缩放AmazonEC2实例:(请注意,为了安全起见,用户名、域和路径都已更改)

    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重新启动。

    当我手动运行这些SVN命令时,它们也能很好地工作,但奇怪的是,在rc.local中,它们并没有向记录器生成任何输出,而Apache2重新启动却能做到这一点。

    我还尝试运行svn-co和svn更新,包括sudo-u和without。

    如何运行svn命令?完全签出或更新。在这一点上,要么比什么都没有要好!

    2 回复  |  直到 16 年前
        1
  •  2
  •   Powerlord    16 年前

    我不知道为什么 sudo 在这里引起问题,但您也可以使用 su ,其工作方式如下:

    su nonRootUser -c "/usr/bin/svn co svn+ssh://user@svnserver.com/path/to/repo /var/www/html | logger"
    
        2
  •  0
  •   flaxeater    16 年前

    试着用完整的路径来炒作。

    /bin/chown
    
    推荐文章