Saya memiliki mesin virtual ubuntu yang saya akses melalui Vagrant. Di host saya (Mac OSX), ada folder dengan beberapa file, yang saya bagikan ke mesin virtual. Di mesin virtual itu, saya ingin menggunakan penjaga untuk melihat perubahan file dan melakukan beberapa tindakan jika ada file yang berubah.
Saya mengatur pelindung dengan benar, dan ketika mengubah file bersama dari dalam mesin virtual, itu berfungsi dengan baik dan menjalankan skrip yang sesuai. Tetapi, jika saya mencoba mengubah file yang dibagikan dari mesin host saya, acara perubahan file ini tidak menyebar dan penjaga tidak bereaksi.
Beginilah tampilan folder vagrant saya (hal yang biasa)
local_config.vm.share_folder "app", "/var/www/app/current", "../app"
Saya bahkan mencoba menggunakan NFS sharing ( :nfs => true
) tetapi tidak membantu.
Apakah ada cara untuk membuat perubahan file yang menyebar acara dari host ke mesin virtual? Atau apakah ini sesuatu yang bersifat Vagrant / VirtualBox?
MEMPERBARUI:
Setelah beberapa percobaan lagi, saya menginstal permata ZenTest , yang berisi alat autotest yang memungkinkan fungsionalitas yang sama mengenai peristiwa perubahan file.
Saat menjalankan autotest di mesin virtual dan mengubah file dari mesin host saya, perubahan ini diperbanyak dan autotest bereaksi .
Berdasarkan ini, tampaknya bahwa perambatan acara perubahan file adalah masalah penjaga, bukan gelandangan atau kotak virtual.
Saya belum melihat perbedaan implementasi antara penjaga dan autotest.
Sekarang saya tahu adalah mungkin untuk menangkap peristiwa perubahan file dari host di mesin virtual. Adakah yang tahu bagaimana cara mencapai ini menggunakan penjaga? Saya lebih suka menjaga karena DSL dan kegunaan generik.
sumber
Saya tahu ini adalah pertanyaan yang lebih lama, tetapi ini adalah jawaban yang lebih terkini:
-o/--listen-on
Dokumentasi opsi penjagaDisisipkan di sini untuk referensi cepat:
sumber
Jika ada yang mengalami masalah ini dan penjaga masih tidak berfungsi ...
Saya akhirnya menggunakan watchr . Ini adalah alternatif untuk menjaga. Perambatan acara dari host ke mesin tamu berfungsi baik di Watchr. Ini juga lebih fleksibel daripada autotest.
sumber
Events propagation from host to guest machine works ok in watchr.
Bagaimana? Apakah menggunakan polling? Jika VirtualBox tidak menyebarkan acara, bagaimana ia bisa tahu kapan file telah berubah?