gpt4 book ai didi

service - 查看服务是否安装

转载 作者:行者123 更新时间:2023-12-04 00:41:43 25 4
gpt4 key购买 nike

如何检查节点上是否安装了服务(debian 和 cent os/amazon)?

我想停止并禁用已安装的服务。如果服务不存在,我会在服务停止时遇到异常:Chef::Exceptions::Service:/etc/init.d/service 不存在!

最好的问候安德烈

最佳答案

一个解决方案是添加一个 guard在您的服务资源中:

service "my_service" do
action :stop,:disable
only_if { File.exist?("/etc/init.d/my_service") }
end

另一种方法是保护资源本身的定义:免责声明:这是此示例的未经测试代码。

service "my_service" do 
action :stop,:disable
end.if File.exist?("/etc/init.d/my_service")

最后一个更直观

if File.exist?("/etc/init.d/my_service")
service "my_service" do
action :stop,:disable
end
end

第一个示例与其他示例之间的主要区别在于,第一个示例无论如何都会在编译时将资源添加到集合中,而另一个示例仅在文件存在时才会添加,因此如果不存在则避免为该服务创建新对象那里。

精度,最后两个解决方案有一点缺点,如果另一个配方安装服务,他们不会在第一时间看到它,因为编译配方时文件不存在,所以您可能最终会运行服务直到下一轮 Chef 。

关于service - 查看服务是否安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29698397/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com