我有一个脚本,我需要在提交到 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/