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.