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


29

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

Answers:


16

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

挂载共享文件夹时,Vagrant会发出“ vagrant-mount”事件,因此您可以创建一个新贵的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 ...

谢谢!不知道为什么会收到错误消息/bin/sh: 1: [: =: unexpected operator,所以我只是对该行不加评论。
错误的用户名,2014年

糟糕!我编辑了这篇文章,以便语法正确。
billyw 2014年

可以start on vagrant-mounted MOUNTPOINT=/vagrant工作吗?
km6zla

由于我的暴发户脚本start on vagrant-mounted由于某种原因无法正常工作。不知道为什么,也不知道如何调试它。
maectpo '16

44

我发现使用带有选项的单独的无所事事的供应商run : "always"要容易得多,例如:

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

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


3
提供的链接未提及"always"。也许这已在较新的版本中删除。
拉斐尔·伊恩

6
@RafaelEyng的文档位于vagrantup.com/docs/provisioning/basic_usage.html,搜索“一次运行或始终运行”
Daniel Compton

在2017年重新测试。像魅力一样工作。这是最佳答案,并且仍是最新的。
iaforek
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.