当我声明服务如下时:
service "my_service" do
action [:enable, :start]
end
厨师到底会执行什么?
它会只运行service my_service enable
和service my_service start
吗?
对于start
,您的Linux服务器使用的是init.d还是systemd应该没有问题,因为systemctl
命令与service
命令向后兼容。但是,实际上enable
命令中没有service
这样的选项。例如,如果您运行service my_service enable
,则会得到
Usage: /sbin/service my_service {start|stop|reload|restart|try-restart|force-reload|status}
就我而言,我正在使用systemd,而我真正要做的厨师就是运行systemctl enable my_service
。但是从文档中我无法说出厨师到底会做些什么。
我可以为start_command
操作指定一个自定义start
,但是很遗憾,没有enable_command
。
有人对此有明确的答案或参考吗?
答案 0 :(得分:0)
好吧,我在厨师那里碰到了一个叫做“提供者”的东西。 我什至可以选择指定要使用哪个提供商的服务。
service my_service
action [:enable, :start]
provider Chef::Provider::Service::Systemd
end
因此,我认为只要确保可以使用Chef::Provider::Service::Systemd
,就可以按预期执行enable
操作。
但是默认的厨师提供者将使用什么?以及如何检查和更改?
答案 1 :(得分:0)
最后,厨师将执行以下操作: 启用- 在启动时启用服务。此操作等效于Microsoft Windows平台上的自动启动类型。在AIX平台上使用系统资源控制器(SRC)时,不支持此操作,因为系统资源控制器(SRC)没有在系统引导时启用和禁用服务的标准机制。
开始- 启动服务,并使其保持运行状态,直到停止或禁用。
您的情况-
它将在启动时启用服务,就像Windows中的自动服务启用器
希望这会有所帮助