使用作为服务运行的Hudson执行svn导出时出现问题

时间:2011-06-29 21:02:02

标签: linux svn hudson

我有一个执行构建以及执行svn导出的脚本。当我手动运行hudson时,通过从root用户运行它,我可以毫无问题地进行构建和svn导出。

如果我使用服务(chkconfig)调用hudson,hudson运行正常。 SVN签出(假设这是URL1)也很好,因为凭证存储在hudson配置中。但是,当我的脚本尝试执行svn导出(与URL1不同;假设这是URL2)时,它总是失败。它说“密码为'root':身份验证领域”。这基本上是错误的,因为我的构建服务器无法提供登录svn所需的凭据。这是我不明白的,因为我将svn凭证存储在我的root帐户中,并且从shell执行svn update / svn info到URL2或者我手动启动hudson(而不是服务)时没有问题。

我现在的猜测是,当我们将应用程序作为服务运行时,它不会加载部分/全部存储的用户配置?知道如何强制服务加载我的svn凭证?任何其他解决方案/见解也是受欢迎的。

顺便说一句,我的构建服务器正在运行Red Hat 5.6

感谢!!!

3 个答案:

答案 0 :(得分:2)

无法给你一个详细的答案,但交互式shell和作为服务运行时的差异之一是第一次通过读取〜/ .bash_profile启动,而第二次运行〜/ .bashrc 尝试比较两者!

答案 1 :(得分:2)

在两个上下文中(在hudson内和shell中)比较env的输出应该可以帮助您解决此问题。

答案 2 :(得分:0)

默认情况下,SVN将用户凭据存储在相应的主目录中。当服务器重新启动时,它将不会像Tobu所指示的那样加载您的配置文件(在我的情况下,/ etc / profile)。因此,要解决此问题,我们只需将HOME文件夹设置为正确的位置即可。修改应用的服务脚本以包含以下行:

HOME=/<<user home folder location>>

这解决了我的问题。

相关问题