7

使用 Chef,如果服务未运行或重新启动,我该如何启动它?

我正在运行 Ubuntu 12.04,我目前正在处理的服务是 PostgreSQL。停止和启动它几乎可以工作,但厨师似乎在它完全停止并失败之前尝试启动它。

4

2 回答 2

3

通常,您action :start在安装服务时使用以确保它在主厨运行后运行,请参阅服务资源

当您修改需要重新启动服务以使更改生效的文件时,您使用操作:reload:restart(取决于 init 脚本提供的内容)。然后看起来像这样:

template "/etc/postgresql/pg.conf" do
  source "pg.conf.erb"
  notifies :restart, "service[postgres]"
end

更多关于通知

于 2013-05-21T06:19:59.453 回答
0

这是我用来有条件地为 docker 容器执行几个(重新)启动类型操作之一的代码大纲。在@giannis-nohj 的总是重启建议由于某种原因不起作用的情况下,它可以适用于服务(重新)启动情况。

my_file = file ...

my_image = docker_image 'my-image' do
  repo 'my-image'
  action :pull
end

ruby_block 'compute docker action' do
  block do
    action = if my_image.updated_by_last_action?
      :redeploy
    elsif my_file.updated_by_last_action?
      :restart
    else
      :run
    end
    resources('docker_container[my-container]').delayed_action(action)
  end
end

docker_container 'my-container' do
  repo 'my-image'
  action :nothing
end
于 2017-08-24T02:11:36.457 回答