Voglio che Vagrant avvii il server Play nella cartella / vagrant / ogni volta che lo faccio su Vagrant. Mettere @reboot sul crontab non funziona perché lo script viene eseguito prima che la cartella / vagrant / sia connessa.
Voglio che Vagrant avvii il server Play nella cartella / vagrant / ogni volta che lo faccio su Vagrant. Mettere @reboot sul crontab non funziona perché lo script viene eseguito prima che la cartella / vagrant / sia connessa.
Risposte:
Invece di usare crontab, hai provato a usare Upstart ?
Vagrant emette un evento "montato su vagrant" quando viene montata la cartella condivisa, quindi è possibile creare un file conf upstart, diciamo /etc/init/play.conf
, da eseguire quando viene emesso quell'evento:
description "Play server"
start on vagrant-mounted
pre-start script
[ "$MOUNTPOINT" == "/vagrant" ] || stop
end script
... rest of config file for starting Play server ...
start on vagrant-mounted MOUNTPOINT=/vagrant
funzionare anche?
start on vagrant-mounted
non funziona per qualche motivo. Non so perché e non so come eseguirne il debug.
Ho trovato l'utilizzo di un provisioner vagabondo separato con l'opzione run : "always"
molto più semplice, ad esempio:
config.vm.provision :shell, path: "yourStartUp.sh", run: "always", privileged: false
Vedi https://docs.vagrantup.com/v2/provisioning/shell.html per il documento completo.
"always"
. Forse questo è stato rimosso in una versione più recente.
/bin/sh: 1: [: =: unexpected operator
, quindi ho semplicemente decommentato quella riga.