シェフの再開メカニズムがどのように裏で働いているかについての説明を探しています。私はオンラインでそれに関するドキュメンテーションを見つけることができず、コードをトレースしようとしています(トリガーは遠く離れているようなアクションです)。シェフのサービス再開のメカニズム
具体的にはnginx
を見て、私たちはシェフサーバーを使用していて、chef-solo
ではないと仮定します(違いがあるかどうかはわかりません)。
私はこの(例えば)を持っているレシピに:
template '/etc/nginx/nginx.conf' do
source 'nginx.cfg.erb'
owner "root"
group "root"
mode 00755
notifies :reload, "service[nginx]", :delayed
end
notifies :reload
ビットは、リロードをトリガー意味し、:delayed
は、それがchef-client
実行の終了時に起こることを意味します。それはどのように舞台裏で機能しますか?実行スレッドの後に問題があります。
どこかchef-client
は、service nginx reload
またはその行に沿って何かを実行する必要があります。それはどこにどのように定義されていますか?
'restart_command 'サービスnginx reload'も使用できますが、私は' provider ...と表示されます「あまり侵入しない。 Docs:http://docs.opscode.com/resource_service.html – alanjds
彼はリロードが必要なので、代わりに 'reload_command'を使うべきです。 – sekrett
@sekrett 'reload_command'は' service'プロバイダによって定義されなければなりません。これは 'restart_command'を使って':restart'に対して通常の動作を上書きするので、命名は全く違いはありません。 –