我有一個腳本,需要在git修訂控制下提交到一個項目後運行。因此,我創造了我的項目在子目錄/鉤.git目錄,將其命名爲「後提交」一個post-commit鉤子並賦予它包含以下內容:作爲後臺任務的Git post-commit hook
#!/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需要運行的時間。
我嘗試了很多,但並沒有將進程本身置入後臺。
這裏有什麼問題?
David,同時我發現了一個類似的方法:nohup/usr/local/bin/my_script 2>&1>/dev/null& – GeorgieF
不完全正確的答案,但會引導一些人:考慮實現一個真正的守護進程。如果在ruby中你可以使用守護進程,或者讀一下你在這個Unix守護進程如何工作的描述中應該做的事情的基礎:http://daemons.rubyforge.org/Daemons.html –