Scripting

在 git post-merge 中添加延遲

  • December 24, 2020

我的場景如下:更新我的 Git 儲存庫上的文件後,我有一個 Git 掛鉤,它從我的 Web 伺服器呼叫 API。這個 API 執行 Git 拉取,然後我有一個 Git 鉤子合併後重新啟動 Web 伺服器(Gunicorn)。Web 伺服器的重啟應該在拉取完成後幾秒鐘發生,否則 Web 伺服器會在 API 呼叫完成之前關閉,並向 Git 掛鉤返回錯誤。目前我制定了以下解決方案,但我對此並不滿意。文件.git/hooks/post-merge

#!/bin/sh
/var/www/tempcollect/.git/hooks/restart > /var/www/tempcollect/.git/hooks/restart.log &

文件.git/hooks/restart

sleep 10s
/usr/bin/sudo systemctl restart tempcollect

我希望在post-merge文件中包含重新啟動 Web 伺服器的命令。文件的執行post-merge是在拉取結束時由 Git 啟動的,因此我無法控制它的啟動方式。

最後我在文件中得到了這一行.git/hooks/post-merge

#!/bin/sh
( sleep 10 ; /usr/bin/sudo systemctl restart tempcollect  ) &

引用自:https://unix.stackexchange.com/questions/625860