Chef infra 使用Chef时如何重新加载systemd服务

Chef infra 使用Chef时如何重新加载systemd服务,chef-infra,systemd,Chef Infra,Systemd,我有一个systemd服务,使用Chef进行管理 执行systemctl后台程序重新加载的方法是什么 例如,如下图所示,我可以重新加载myservice,但这不会重新加载systemctl守护程序 template '/etc/systemd/system/myservice.service do notifies :reload,'service[myservice]', :immediately end service 'myservice' do supports status

我有一个systemd服务,使用Chef进行管理

执行
systemctl后台程序重新加载的方法是什么

例如,如下图所示,我可以重新加载myservice,但这不会重新加载systemctl守护程序

template '/etc/systemd/system/myservice.service do
  notifies :reload,'service[myservice]', :immediately 
end

service 'myservice' do
  supports status: true ...
  action %i[start enable]
end

我们可以使用管理Systemd服务定义。这样,如果服务配置更改,它将使用
triggers\u reload
(默认设置为
true
)属性触发重新加载

由于您使用的是模板,因此可以将
systemd_单元
资源与
reload
操作一起用于您的服务

template'/etc/systemd/system/myservice.service'do
通知:重新加载'systemd_unit[myservice.service],:立即
结束
systemd_单元“myservice.service”do
行动:没什么
结束
另一个选项是创建
执行
资源,并运行实际的
守护进程重新加载
命令:

template'/etc/systemd/system/myservice.service'do
通知:立即运行“执行[daemon reload]”
结束
执行'daemon reload'do
命令“systemctl后台程序重新加载”
行动:没什么
结束

我们可以使用管理系统服务定义。这样,如果服务配置更改,它将使用
triggers\u reload
(默认设置为
true
)属性触发重新加载

由于您使用的是模板,因此可以将
systemd_单元
资源与
reload
操作一起用于您的服务

template'/etc/systemd/system/myservice.service'do
通知:重新加载'systemd_unit[myservice.service],:立即
结束
systemd_单元“myservice.service”do
行动:没什么
结束
另一个选项是创建
执行
资源,并运行实际的
守护进程重新加载
命令:

template'/etc/systemd/system/myservice.service'do
通知:立即运行“执行[daemon reload]”
结束
执行'daemon reload'do
命令“systemctl后台程序重新加载”
行动:没什么
结束