我无法找出正确的解决方案,因为只有在更新文件(即服务的 conf 文件)时,服务才会重新启动(停止然后启动)。
这就是我foo.rb
文件中的内容。
cookbook_file '/etc/foo/foo.conf' do
source 'foo.conf'
action :touch
end
service 'foo' do
subscribes :restart, 'file[/etc/foo/foo.conf]', :immediately
end
以及我sudo chef-client
在服务器上运行后得到的
cookbook_file[/etc/foo/foo.conf] action touch
- update content in file /etc/foo/foo.conf from 695507 to 06105e
* service[foo] action nothing (skipped due to action :nothing)
据我了解,它识别出文件已更改,但服务未重新启动。
subscribes 必须与被订阅的资源匹配。如果它没有,它不会给你任何错误,但你想要
或者,您可以反过来执行此操作,即让 cookbook_file 通知服务它需要重新启动。