我对post-receive执行单元测试,但不希望用户等待它。异步git钩子?
我试图从混帐用户邮件列表(“只是&
它”)的建议,但是这是行不通的:https://groups.google.com/forum/#!topic/git-users/CFshrDgYYzE
混帐似乎等待bash脚本退出,即使我只是把这个在挂钩/收到后:
exec-unit-tests.sh &
我对post-receive执行单元测试,但不希望用户等待它。异步git钩子?
我试图从混帐用户邮件列表(“只是&
它”)的建议,但是这是行不通的:https://groups.google.com/forum/#!topic/git-users/CFshrDgYYzE
混帐似乎等待bash脚本退出,即使我只是把这个在挂钩/收到后:
exec-unit-tests.sh &
这对我有效。 &
和标准输出& stderr管道必须关闭:
long-running-command >&- 2>&- &
为了把命令的背景下,这两个stdout
和stderr
必须关闭。如果其中任何一个保持打开状态,则进程将不在后台,并且在完成钩子脚本之前提交操作才会完成。
懒惰的另一种方法是简单地重定向stdout
和stderr
到/dev/null
:
long-running-command >/dev/null 2>&1 &
这是一个有点不太干净,但也许更容易理解和记忆,并且具有相同的效果。
您是否尝试了该帖子中建议的其他方式使用cron安排异步作业?像'at'来按需安排工作(并且在将来不远)可能也值得研究 –
这也可能工作,但我没有尝试它。 – oberhamsi