SVN post commit hook不会执行telnet

时间:2013-05-18 09:16:51

标签: svn telnet post-commit-hook

我有一个Apache通过DAV服务的SVN回购。

我创建了一个post-commit钩子,我想打开一个到服务器的telnet会话。

当我从命令提示符执行命令时,它可以正常工作。

但是当我用钩子执行它时,它失败了,说它没有执行权限。

我的脚本很简单:

 #!/bin/sh
 REPOS="$1"
 REV="$2"

 echo -e symeon\\nfrobnitz\\n.say \#foo easitag $REV $(svnlook author $REPOS -r $REV)    $(svnlook changed $REPOS -r $REV): $(svnlook log $REPOS -r $REV) | telnet server 8080

钩子在RedHat Enterprise Linux机器上运行。我假设它正在以apache用户身份执行。

任何人都知道为什么?

2 个答案:

答案 0 :(得分:0)

两点:

  1. 运行Apache的用户帐户(假设您使用Apache服务存储库)必须具有执行脚本尝试执行的所有操作的权限。
  2. Hook脚本在空的环境中执行 - 没有设置环境变量,甚至没有设置$PATH。因此,找不到您尝试执行的二进制文件(svnlook& telnet)。您需要指定这些路径的完整路径,或在脚本中设置$PATH

答案 1 :(得分:0)

我在一个相当模糊的论坛上发现了这个:

默认情况下,不允许apache用户建立http连接。要启用此功能,请从root用户执行以下操作:

setsebool -P httpd_can_network_connect 1

发现了 http://forums.phpfreaks.com/topic/64806-solved-could-not-connect-to-server-permission-denied/