[英]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 at
或online 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.