簡體   English   中英

Git post-commit hook作為后台任務

[英]Git post-commit hook as a background task

我有一個腳本,我需要在git版本控制下提交項目后運行。 因此,我在子目錄/ hooks中的項目.git目錄中創建了一個post-commit鈎子,將其命名為'post-commit',並為其提供了以下內容:

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

my_script是可執行的,在/ bin / sh中運行良好。 實際上它有幾秒鍾的運行時間,所以我希望它是背景和從當前shell分離。 這就是為什么我把尾隨'&'放到我的鈎子上。

現在的問題是,'&'似乎被忽略了。 當我在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 &

您也可以使用at命令。 您可能必須先安裝它

echo /path/to/your/executable | at now

要么:

echo bash /path/to/your/script | at now

有關at( man atonline version )的更多信息,請參閱at(1)手冊頁。

嘗試使用nohup

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

如果你將#!/bin/sh更改為#!/bin/bash (假設你可以使用bash),並使用nohup ,那么你的例子應該可行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM