Bagaimana saya bisa membuat Vagrant memulai server saat startup?


29

Saya ingin Vagrant memulai server Play di folder / vagrant / setiap kali saya melakukan vagrant. Menempatkan @reboot pada crontab tidak berfungsi karena skrip berjalan sebelum / gelrant / folder terhubung.

Jawaban:


16

Alih-alih menggunakan crontab, sudahkah Anda mencoba menggunakan Upstart ?

Vagrant memancarkan acara "mount-mount" ketika folder bersama dipasang, sehingga Anda bisa membuat file conf pemula, katakanlah /etc/init/play.conf, untuk dijalankan ketika acara itu dipancarkan:

description "Play server"
start on vagrant-mounted

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

... rest of config file for starting Play server ...

Terima kasih! Tidak yakin mengapa saya mendapatkan kesalahan /bin/sh: 1: [: =: unexpected operator, jadi saya hanya membatalkan komentar pada baris itu.
nama pengguna salah

Ups! Saya mengedit posting sehingga sintaks sudah benar.
billyw

Bisakah start on vagrant-mounted MOUNTPOINT=/vagrantbekerja juga?
km6zla

Untuk skrip pemula saya start on vagrant-mountedtidak berfungsi karena alasan tertentu. Tidak tahu mengapa dan tidak tahu cara men-debug itu sama sekali.
maectpo

44

Saya menemukan menggunakan penyedia gelandangan terpisah dengan opsi run : "always"jauh lebih mudah, misalnya:

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

Lihat https://docs.vagrantup.com/v2/provisioning/shell.html untuk dokumen lengkap.


3
Tautan yang disediakan tidak mengatakan apa-apa "always". Mungkin ini dihapus dalam versi yang lebih baru.
Rafael Eyng

6
@RafaelEyng dokumen untuk itu ada di vagrantup.com/docs/provisioning/basic_usage.html , cari "RUN ONCE ATAU SELALU"
Daniel Compton

Diuji ulang pada tahun 2017. Bekerja seperti pesona. Ini adalah jawaban terbaik dan masih terkini.
iaforek
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.