vagrant box 上的 nginx 不会自动启动

vagrant box 上的 nginx 不会自动启动

我已经用这个 vagrantfile 设置了一个 vagrant box:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure(2) do |config|
  config.vm.box = "puphpet/debian75-x64"

  config.vm.synced_folder "../.", "/kweetet", id: "vagrant-root",
    owner: "vagrant",
    group: "www-data",
    mount_options: ["dmode=777,fmode=777"]

  config.vm.network "forwarded_port", guest: 80, host: 8080

  # install packages
  config.vm.provision "chef_solo" do |chef|
    chef.cookbooks_path = ["./cookbooks", "./dk_cookbooks"]
    chef.add_recipe "nginx"
    chef.json = {
      "nginx" => {
        "init_style" => "upstart"
      }
    }
  end
end

当我vagrant up第一次启动机器时,nginx 服务会自动启动,因为执行了配置。但是当我再次halt启动机器时up,我必须手动启动 nginx 服务器。

所以我的问题是:如何配置我的 nginx 配方以便它在系统启动时自动启动 nginx?

更新

我按照 Tejay 的建议将其包含在自定义食谱中,但它不起作用:

# make a daemon for nginx
service 'nginx' do
  action :enable
end

当我停止并重新启动计算机时,nginx 不会自动启动。我的自定义配方包含在 vagrant 运行列表中,我确信它运行正确,因为其中的其他操作运行良好。

有任何想法吗?

答案1

您需要将一个配方添加到运行列表中,该配方将用于:enablenginx 服务。upstart 的默认 nginx 配方仅用于此:start

答案2

很奇怪,但是当我将它放入我的自定义食谱中时,它就起作用了:

service 'nginx' do
    action [ :enable, :start ]
end

我认为:enable单独设置操作就足以在启动时启动服务器

相关内容