2013-05-18 90 views
0

我有一個由DAV通過Apache服務的SVN回購。SVN後提交掛鉤將不會執行telnet

我創建了一個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用戶身份執行的。

任何人都知道爲什麼?

+0

發現再試 – greg0ire

+0

該用戶沒有按不存在... – Eric

+0

找到apache用戶的hanme。可能是apache,httpd,看看你的進程列表/你的apache配置並找到。 – greg0ire

回答

0

兩點:

  1. 的用戶帳戶在其下的Apache運行(假設你的服務與Apache庫)必須有權做一切你的腳本正在試圖做的事。
  2. 鉤子腳本在一個空的環境中執行 - 沒有設置環境變量,甚至不包括$PATH。因此找不到您嘗試執行的那些二進制文件(svnlook & telnet)。您需要指定這些路徑的完整路徑,或在腳本中設置$PATH
+0

1.是的,這是正確的。但是,什麼權利?這真的是更多的問題。 2.是的,我改變了腳本到完整的路徑,仍然沒有骰子。 – Eric