我在post-commit中有这个:
#!/bin/sh
REPOS="$1"
REV="$2"
/usr/bin/php /home/name/svn/scripts/post-commit.php $REPOS $REV
但无论我做什么,post-commit.php都没有被执行,甚至没有chmod a + rw。此外,exec没有输出。
我错过了什么?
更新:已删除exec>这个例子中的./logs/log.txt,因为它似乎让人迷惑。
答案 0 :(得分:1)
exec
替换当前的shell进程,并且不会启动新进程。因此,在exec
命令之后,shell将停止。
你的特定exec
命令的目的让我顺便说一句......所以只需删除它就可以了。
答案 1 :(得分:1)
尝试:
#!/bin/sh
REPOS="$1"
REV="$2"
#debug:
echo "------------------------------"
date >> /tmp/debug.txt
echo "$@" >> /tmp/debug.txt
id >> /tmp/debug.txt
env >> /tmp/debug.txt
/usr/bin/php /home/name/svn/scripts/post-commit.php "$REPOS" "$REV" > /full/path/to/log.txt 2>&1
此外,验证您的帖子脚本在手动执行时是否正常工作。
答案 2 :(得分:0)
你最好首先执行'cd'到你真正希望shell执行的目录。 我不确定SVN在运行时的路径,但当然你的脚本有潜在的特权问题