如何从厨师食谱中检查Linux服务的状态? 这是我的情景:
我想将服务的状态存储在一个变量中(如果可能的话),所以我可以检查变量的值并相应地继续。
编辑:
详细说明我想要完成的任务。
在Linux终端中,我会使用命令
维护我的服务状态。
如果未安装该服务,则命令将返回
myservice:无法识别的服务
如果已安装并正在运行,则会返回
run.sh(pid 10777)正在运行......
我想在继续安装厨师食谱之前确定myservice的状态。
答案 0 :(得分:3)
您可以创建一个这样的简单助手:
module MyServiceChecker
def my_service_running?
cmd = Mixlib::ShellOut.new('/etc/init.d/my_service status')
cmd.run_command
cmd.exitstatus == 0
end
end
Chef::Recipe.send(:include, MyServiceChecker)
Chef::Resource.send(:include, MyServiceChecker)
Chef::Provider.send(:include, MyServiceChecker)
然后在想要检查服务是否正在运行时使用此帮助程序。根据您的服务和Linux衍生产品,命令可能会有所不同。