Git post-commit hook 作为后台任务

标签 git shell sh post-commit gitx

我有一个脚本,我需要在提交到 git 版本控制下的项目后运行它。因此,我在我的项目 .git 目录的子目录/hooks 中创建了一个提交后 Hook ,将其命名为“post-commit”并为其提供以下内容:

#!/bin/sh
# I am a post-commit hook
/usr/local/bin/my_script &

my_script 是可执行的并且在/bin/sh 中运行良好。事实上它有几秒钟的运行时间,所以我希望它在后台运行并从当前 shell 中分离出来。这就是为什么我将尾随的“&”放在我的钩子(Hook)上。

现在的问题是,'&' 似乎被忽略了。当我在 OSX Lion 下提交使用 gitx 0.7.1 时,gitx 挂起的时间正好是 my_script 需要运行的时间。

我尝试了很多,但没有让进程本身进入后台。

这里有什么问题吗?

最佳答案

以下是它对我的工作方式:

#!/bin/sh
# I am a post-commit hook
nohup /usr/local/bin/my_script &>/dev/null &

关于Git post-commit hook 作为后台任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7917324/

相关文章:

git - 整洁、干净的压缩 git PR 并将提交 merge 为一个提交

git - 如何以编程方式找到两个分支的共同祖先

bash - 如何将变量传递给awk命令行

java - 需要从java执行shell脚本

linux - 我想计算在 C 中调用了多少次系统调用

linux - 我想读取 "PUB"字符串,如果找到则读取下一个 50 个字符并追加到 excel 文件中

git - 如何在交互式编辑期间从 vim 内部中止 git rebase

git - Git 中子项目和子模块的区别?

bash - 参数列表太长 - Unix

bash - 生成进程的 shell 脚本,在 SIGTERM 上终止子进程