包名称与服务名称不匹配

package name doesn't match service name

我正在尝试编写可以在 ubuntu 和 debian 下运行的食谱。 我正在使用 ubuntu 和 debian 中具有相同名称的包。但是在 debian 中包名与服务名不匹配。

示例: ubuntu - package name = foo, service = foo. debian - package name = foo, servie = xxxx

我需要 start/restart 明确服务或通知服务的名称。那么,使用正确的服务名称的最佳方法是什么?当然,我可以在属性文件中分别为 ubuntu 和 debian 预定义名称,但我想尝试自动执行此操作。

由于这种差异在很多情况下都会发生,因此甚至在 chef 的关于 service resource:

的文档中也包含了一个例子
service 'crond' do
  case node['platform']
  when 'redhat', 'centos', 'scientific', 'fedora', 'amazon'
    service_name 'crond'
  when 'debian', 'ubuntu', 'suse'
    service_name 'cron'
  end
  action [:start, :enable]
end