SVN更新期间EC2用户数据脚本崩溃

问题描述

| 我正在尝试使用EC2用户数据脚本的shebang功能来更新已在实例的EBS映像上签出的SVN存储库,然后运行其他命令。脚本在执行“ 0”命令期间始终崩溃,使回购协议中的大多数或所有文件处于锁定状态。
svn up
命令后的所有命令均不运行。 我的用户数据脚本如下所示:
#!/bin/bash
echo \"about to update...\" >> /home/ubuntu/test.log
svn up /home/ubuntu/path/to/repository
echo \"update finished\" >> /home/ubuntu/test.log
svn up不能正确完成,第二个
echo
命令不执行。 我在任何日志中都没有看到任何错误(我不确定我应该仔细检查哪些日志,但是我已经浏览了所有显而易见的日志)。为什么svn会失败?     

解决方法

权限问题?尝试:
sudo svn up ...
    ,我终于想出了一种解决办法。我没有直接在用户数据脚本中调用ѭ0,而是编译了一个简单的C应用程序来执行svn并在用户数据脚本中执行该命令:
#include <stddef.h>
#include <stdlib.h>
#include <unistd.h>
int main(void) {
    execl(\"/usr/bin/svn\",\"svn\",\"update\",\"/path/to/repository/\",(const char *) NULL);
    return(EXIT_SUCCESS);
}
不幸的是,我不太确定为什么会这样。我想尝试一下,因为我们在SVN提交后挂钩中有一个类似的问题,需要相同的解决方案。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...