Bisakah mulai menangani tautan simbolik ke file konfigurasi?

30

Saya memiliki semua file konfigurasi pemula saya di bawah kontrol versi. Cara ideal saya untuk menggunakan pemula adalah membuat tautan lunak dari repositori kontrol versi saya (lincah - tidak penting) ke / etc / init tetapi pemula baru gagal melihat pekerjaan. Semuanya baik-baik saja jika saya menyalin file dari direktori repositori ke / etc / init.

Adakah yang tahu mengapa pemula tidak mampu menangani tautan simbolis atau bahkan keras?

Terima kasih

Chris

Chris McCauley
sumber
1
Mungkin itu adalah keputusan desain dari pengembang pemula untuk mengabaikan tautan lunak? Lagi pula, jika repositori Anda berada di partisi yang sama dengan /etc/init, coba gunakan tautan keras.
Steven Senin
Mencoba hubungan keras dan itu tidak berhasil :-(
Chris McCauley
Timpang. Memang symlink diabaikan tanpa panggilan manual untuk memuat ulang konfigurasi. Mendesah. Saya lebih suka symlink. Pembersih dalam case-use saya. Baiklah. Saya hanya akan menyalin file, seperti brengsek.
James T Snell

Jawaban:

9

Pemula tidak mendukung symlink karena mereka mungkin menunjuk ke file pada partisi yang tidak dimuat saat boot .

Saya telah menyelesaikan ini dalam proyek saya sendiri dengan meletakkan file conf di / etc / init / myscripts dan kemudian mengikat itu ke direktori di repositori saya. mount --bind /etc/init/myscripts ~/code/repo/initscripts.

Tambahkan ini ke / etc / fstab dan mengikat akan tetap ada:

/etc/init/myscripts  /home/me/code/repo/initscripts      none    bind

Ini secara efektif memberi Anda direktori yang ditautkan. Pemula akan memperlakukan file conf seperti yang lainnya, karena mereka bersifat lokal ke / etc / init. DVCS Anda juga akan melihatnya sebagai file lokal di repo, jadi itu juga akan memperlakukan mereka seperti halnya file lain yang disimpan di sana. Terbaik dari kedua dunia.

Alexander Garden
sumber
49

Pemula menonton direktori konfigurasinya dengan inotify dan memuat ulang konfigurasi ketika ada file yang berubah atau file baru ditambahkan. Tampaknya ini tidak berfungsi untuk symlink.

Untuk memperbarui penggunaan konfigurasi secara manual

$ initctl reload-configuration
Fabian Jakobs
sumber
ini digunakan untuk bekerja andal bagi saya. akhir-akhir ini di pemula 1.3 ini hanya bekerja pada pekerjaan yang dihentikan.
jcomeau_ictx
2
Bagi saya symlink di / etc / init / work tetapi jika saya mengubah file di belakang symlink file tidak dibaca kembali oleh alat pemula. Butuh waktu berjam-jam untuk mengetahui bahwa symlink adalah alasannya. Kerjanya seperti cache yang tidak seorang pun ingin memilikinya.
peschü
1

Seperti disebutkan sebelumnya:

initctl reload-configuration

Namun jika Anda mendapatkan kesalahan seperti berikut ini:

initctl: Rejected send message, 1 matched rules; type="method_call", sender=":1.155" (uid=1000 pid=6177 comm="initctl reload-configuration ") interface="com.ubuntu.Upstart0_6" member="ReloadConfiguration" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init")

Anda harus memohon sudo:

sudo initctl reload-configuration
Karl Morrison
sumber