我想知道是否有办法取消通知以重新启动设置为延迟的服务。例如,这是配置更改代码块:
template "/etc/myapp/myconfig.conf" do
source "myconfig.conf.erb"
mode 0600
notifies :restart, "service[myapp]", :delayed
end
但是在我的食谱结束时,我有一些逻辑,如果满足某些条件,将实际禁用该应用程序。这很好,但是在禁用之后(在厨师运行结束时),延迟重启请求启动并重新启动该过程。我想知道是否有办法告诉厨师取消服务的所有重启请求,如果它被禁用。想法?
答案 0 :(得分:0)
可以做到,但它并不漂亮。你需要进入[run_context
] [1]并获得[delayed_notification_collection
] [2]。然后,您可以删除通知。但请注意,这对于厨师的内部非常深入,这是非常沮丧的。
看一下this "cookbook"的例子。它仅在测试厨房测试中进行了测试。