Determining if a service is defined

Hi,

I’m separating the recipe(s) that create a service from the recipes that manage relevant configuration files. When such configuration files change, if there’s also the service, I’d like to restart it.

How can I notify a service only if is already defined?

The only thing I’ve found is this:

resource_exists = proc do |name|
  begin
    resources name
    true
  rescue Chef::Exceptions::ResourceNotFound
    false
  end
end

# Use:
template '/etc/my/template.conf' do
  source 'template.conf.erb'
  mode '640'
  notifies :run, 'ruby_block[my-resource-supposed-to-exist]' if resource_exists['ruby_block[my-resource-supposed-to-exist]']
end

Is there a more “Chef” way to accomplish this?