2012-04-03 18 views
4

我正在使用下面的內容來同步我的廚師食譜中的github回購。廚師和混帳同步 - 如何通知runit服務重新加載給定的更新?

branch_name = "master" 
git "/home/ubuntu/workspace/repo" do        
    repository "[email protected]:me/repo.git" 
    revision branch_name         
    action :sync          
    user "root"                 
end 

在回購是我的python web.py腳本運行我的spawn-fcgi應用程序。我正在使用runit配方來運行我的spawn-fcgi作業。

include_recipe "runit" 
runit_service "myservice" 

問題is..given該index.py腳本已經回購了更新......我怎麼通知runit素文字的MyService重裝我的產卵-fcgi的腳本?

回答

7

如果我理解正確的話,這應該一個git更新後重新加載服務:

branch_name = "master" 
git "/home/ubuntu/workspace/repo" do        
    repository "[email protected]:me/repo.git" 
    revision branch_name         
    action :sync          
    user "root"                 
    notifies :restart, "service[myservice]" 
end 

重載將被推遲,直到你的廚師運行結束。要立即實現,可以將最後一行更改爲:

notifies :restart, "service[myservice]", :immediately 

runit_service定義不支持:reload作爲操作。請注意,這將在git版本發生更改時重新啓動服務(因此本地回購更新)。如果你只想監視一個文件,你可能需要編寫一個腳本或其他東西來檢查更新後的文件,但我懷疑任何git變更都應該重新啓動。

+0

我明白了......我在回購中有很多文件。其中很多都不值得重啓。所以...要麼創建一個我不想做的專用回購,要麼創建一個自定義腳本來監控文件中的更改。謝謝.... – Tampa 2012-04-03 12:57:59