Eu tenho um script que certamente levará muito tempo para ser executado. Eu tenho uma instalação multi-máquina. Na inicialização (preferencialmente), gostaria de ter o script em execução em cada uma das máquinas. No entanto, gostaria de fazer isso de forma assíncrona.
Alternativamente eu poderia executar o ssh vagante para cada máquina.
No primeiro caso, adiciono o arquivo do Vagrant:
Vagrant.configure("2") do |config|
config.vm.provision "shell", run: "always", inline: 'bash /home/vagrant/shared_folder/script.sh &'
...
No entanto, embora eu possa ver um processo em execução em cada convidado, ele não é executado.
Para o segundo caso:
vagrant ssh client5 -c "/home/vagrant/shared_folder/script.sh & sleep 1"
O sono 1 é um "hack" sugerido em outro post. No entanto, ele é executado apenas uma vez e, em seguida, sai.
O conteúdo do script é:
while [ true ];
do
rand='shuf -i 10-200 -n 1'
curl "192.168.56.10/pages/"$rand"K.html"
sleep 5
done
Quando executo o script de dentro do convidado, tudo funciona perfeitamente.