Apa perbedaan antara /etc/init/
dan /etc/init.d/
?
Secara umum, apa makna .d
sufiks yang disampaikan ke direktori?
sumber
Apa perbedaan antara /etc/init/
dan /etc/init.d/
?
Secara umum, apa makna .d
sufiks yang disampaikan ke direktori?
/etc/init.d
berisi skrip yang digunakan oleh alat init System V (SysVinit). Ini adalah paket manajemen layanan tradisional untuk Linux, yang berisi init
program (proses pertama yang dijalankan ketika kernel telah selesai menginisialisasi¹) serta beberapa infrastruktur untuk memulai dan menghentikan layanan dan mengkonfigurasinya. Secara khusus, file dalam /etc/init.d
adalah shell script yang menanggapi start
, stop
, restart
, dan (bila didukung) reload
perintah untuk mengelola layanan tertentu. Skrip ini dapat dipanggil secara langsung atau (paling umum) melalui beberapa pemicu lain (biasanya keberadaan tautan simbolis di /etc/rc?.d/
).
/etc/init
berisi file konfigurasi yang digunakan oleh Pemula. Upstart adalah paket manajemen layanan muda yang diperjuangkan oleh Ubuntu. File dalam /etc/init
adalah file konfigurasi mengatakan Upstart bagaimana dan kapan start
, stop
, reload
konfigurasi, atau query status
layanan. Pada awal yang jelas, Ubuntu sedang transisi dari SysVinit ke Upstart, yang menjelaskan mengapa banyak layanan datang dengan skrip SysVinit meskipun file konfigurasi Upstart lebih disukai. Bahkan, skrip SysVinit diproses oleh lapisan kompatibilitas di Pemula.
.d
di nama direktori biasanya menunjukkan sebuah direktori yang berisi banyak file konfigurasi atau skrip untuk situasi tertentu (misalnya /etc/apt/sources.list.d
berisi file yang digabungkan untuk membuat virtual sources.list
; /etc/network/if-up.d
berisi skrip yang dijalankan ketika jaringan saya nter f ace diaktifkan). Struktur ini biasanya digunakan ketika setiap entri dalam direktori disediakan oleh sumber yang berbeda, sehingga setiap paket dapat menyimpan plug-in sendiri tanpa harus mengurai file konfigurasi tunggal untuk referensi itu sendiri. Dalam hal ini, kebetulan bahwa "init" adalah nama logis untuk direktori, SysVinit datang lebih dulu dan digunakan init.d
, dan Pemula menggunakan polosinit
untuk direktori dengan tujuan yang sama (itu akan lebih "mainstream", dan mungkin kurang sombong, jika mereka menggunakannya /etc/upstart.d
sebagai gantinya).
¹ tidak termasuk initrd
.d
direktori dimasukkan dengan Sistem V. Itu adalah notasi yang membingungkan saat itu dan akhirnya mungkin ide satu orang yang masuk ke basis kode dan tidak bisa pergi. Misalnya, jika Anda berpikir itucat
adalah nama yang buruk untuk tugas yang dilakukannya, bayangkan berapa banyak file di seluruh sistem yang harus Anda sentuh untuk mengubahnya.upstart
atausysvinit
. Dan dalam versi terbaru, bisasystemd
juga (yang tidak ada untuk Ubuntu kembali ketika saya menulis jawaban saya). Paket mana yang disediakan/sbin/init
(dpkg -S /sbin/init
).upstart
paket yang menyediakan / sbin / init (randpkg -S /sbin/init
). Tetapi Bitnami telah menempatkan skripnya di direktori /etc/init.d. Bukankah ini bertentangan dengan jawaban Anda di @AsheeshR di atas? Terima kasih.The ".d" biasanya ditambahkan ke nama direktori untuk menunjukkan bahwa apa yang dulu (atau apa yang bisa) ditangani oleh satu skrip atau file konfigurasi tunggal telah dipecah menjadi beberapa file demi kenyamanan, tetapi yang harus dimasukkan, atau dieksekusi, bersama.
Misalnya,
/etc/apache/conf.d/
atau/etc/apt/sources.d/
Dalam kasus di mana urutan mana yang harus dimasukkan / dieksekusi, file dalam direktori ini kadang-kadang mulai dengan angka, seperti "00-default" atau "80-user" sehingga mereka mengeksekusi dalam urutan yang benar.
Dalam kasus
/etc/init.d/
semacam itu menunjukkan bahwa skrip di "init.d" semua harus dieksekusi. Namun, saat ini, sistem init dari sistem operasi modern sedikit lebih terlibat daripada itu, tetapi nama direktori masih ada.sumber
.d
cara itu terkait dengan proses 'deamon' yang biasanya dimulai saat boot.Seperti yang Anda tunjukkan, nomenklatur ".d" membingungkan dan aneh, dan tidak benar-benar memiliki tempat dalam sistem modern mana pun - Anda akan melihat bahwa sebagian besar layanan modern cenderung menjatuhkannya.
Alasan direktori adalah
/etc/init
dan bukan/etc/upstart
karena Upstart adalah nama proyek, biner yang diinstal sebenarnya masih/sbin/init
tidak masuk akal jika konfigurasinya memiliki nama yang tidak cocok dengan biner.sumber
rules.d
, Xorg yang relatif baruxorg.conf.d
, tidak terlalu tua/etc/profile.d
dll.