我對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