¿Cómo puedo hacer que Vagrant inicie el servidor al inicio?

29

Quiero que Vagrant inicie el servidor de Play en la carpeta / vagrant / cada vez que lo haga. Poner @reboot en el crontab no funciona porque el script se ejecuta antes de que la carpeta / vagrant / esté conectada.

Nombre de usuario incorrecto
fuente

Respuestas:

16

En lugar de usar crontab, ¿has intentado usar Upstart ?

Vagrant emite un evento "montado en vagabundo" cuando se monta la carpeta compartida, por lo que podría crear un archivo conf de inicio, por ejemplo /etc/init/play.conf, para ejecutarse cuando se emite ese evento:

description "Play server"
start on vagrant-mounted

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

... rest of config file for starting Play server ...
billyw
fuente
¡Gracias! No estoy seguro de por qué recibí el error /bin/sh: 1: [: =: unexpected operator, así que simplemente descomenté esa línea.
wrongusername
¡Uy! Edité la publicación para que la sintaxis sea correcta.
billyw
¿Puede start on vagrant-mounted MOUNTPOINT=/vagrantfuncionar tan bien?
km6zla
Para mi script inicial start on vagrant-mountedno funciona por alguna razón. No sé por qué y no sé cómo depurarlo.
maectpo
44

Encontré el uso de un aprovisionador vagabundo separado con la opción run : "always"mucho más fácil, por ejemplo:

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

Consulte https://docs.vagrantup.com/v2/provisioning/shell.html para ver el documento completo.

culmat
fuente
3
El enlace proporcionado no dice nada al respecto "always". Tal vez esto se eliminó en una versión más nueva.
Rafael Eyng
66
@RafaelEyng los documentos están en vagrantup.com/docs/provisioning/basic_usage.html , busque " CORRE UNA VEZ O SIEMPRE"
Daniel Compton
Probado de nuevo en 2017. Funciona como un encanto. Esta es la mejor respuesta y aún está actualizada.
iaforek