我有我的服务器上更新后挂机,这样,当我什么用户运行git钩子?
git push
它在实时web目录上拉。但是,尽管推送总是成功,但更新后的挂钩有时会失败。
钩很简单:
#!/bin/sh
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".
cd /var/www
env -i git pull
我推更新来自不同的地方,但有时我需要登录的服务器上的根和手册册做
env -i git pull
但我只需要20%的时间。任何想法为什么它会随机失败?另外,我如何获取它来记录错误消息,因为它可能作为无法写入文件系统的人运行?
你是否从所有这些地方以相同的方式推动?也就是说,所有的远程URL都是一样的吗? (尤其是用户@主机名部分) – Cascabel 2010-04-13 04:34:59
另外,当你说失败时,你是否确实意味着它失败了,并且有一个权限被拒绝的错误,表明它以特权不足的用户身份运行?还是因为一些完全不相关的原因而失败,与uid运行无关? – Cascabel 2010-04-13 04:38:06
我实际上是从不同的地方推送的:有时它是user1 @ hostname,othertimes,user2 @ hostname等(它们都有这个问题)。 失败时没有可以看到的错误消息,而且我不确定如何获取。在我的更新后,我添加了> echo $ USER> /log.txt,但没有写入任何内容(也没有创建文件)。这让我想到用户推送,没有权限。但是,如果我甚至不能写出错误信息,我将如何知道? – ash 2010-04-13 17:35:17