如何让 Vagrant 在启动时启动服务器?

wro*_*ame 29 vagrant

我希望 Vagrant 每次执行 vagrant up 时都在 /vagrant/ 文件夹中启动 Play 服务器。将 @reboot 放在 crontab 上不起作用,因为脚本在连接 /vagrant/ 文件夹之前运行。

小智 44

我发现使用带有该选项的单独 vagrant 配置器run : "always"要容易得多,例如:

config.vm.provision :shell, path: "yourStartUp.sh", run: "always", privileged: false

有关完整文档,请参阅https://docs.vagrantup.com/v2/provisioning/shell.html

  • @RafaelEyng 它的文档在 https://www.vagrantup.com/docs/provisioning/basic_usage.html,搜索“RUN ONCE OR ALWAYS” (7认同)
  • 提供的链接没有说明“始终”。也许这在较新的版本中被删除了。 (3认同)

bil*_*lyw 16

您是否尝试过使用Upstart而不是使用 crontab ?

挂载共享文件夹时,Vagrant 会发出“vagrant-mounted”事件,因此您可以创建一个 upstart conf 文件,例如/etc/init/play.conf,在发出该事件时运行:

description "Play server"
start on vagrant-mounted

pre-start script
    [ "$MOUNTPOINT" == "/vagrant" ] || stop
end script

... rest of config file for starting Play server ...
Run Code Online (Sandbox Code Playgroud)