Mengapa skrip init.d berada di dll?


16

Saya terus membaca / mendengar itu /etcuntuk file konfigurasi sistem. Dapatkah seseorang menjelaskan / memberi saya intuisi mengapa skrip-skrip ini yang memulai / menghentikan / memulai kembali berbagai program biasanya /etcbukan /varatau /usratau sesuatu yang serupa?


Meskipun pertanyaannya bisa sedikit berorientasi pada pendapat, saya pikir pertanyaan itu dapat dijawab dengan fakta yang sebenarnya.
Julie Pelletier

Apakah pertanyaan tentang alasan historis "berdasarkan pendapat"? Melihat ke belakang, kemungkinan ada beberapa alasan faktual mengapa sesuatu terjadi. Sekalipun itu hanya "karena Mr. Grandhacker membuatnya", itu tidak tergantung pada pendapat siapa pun yang menjawab pertanyaan sekarang.
ilkkachu

Kecuali bahwa pertanyaan mengatakan "mengapa mereka harus" yang merupakan pemicu untuk "diskusi penuh warna" berbasis pendapat. Diedit sedikit untuk membuatnya kurang begitu. @ Adam, kembalikan jika Anda merasa ini bertentangan dengan niat Anda.
ilkkachu

1
Karena kapan dan bagaimana layanan dimulai adalah konfigurasi sistem.
OrangeDog

1
Untuk kismis histeris.
TMN

Jawaban:


22

Awal (keduanya secara historis, dan dalam proses booting ...), /etcadalah bagian dari /(filesystem yang pertama kali dipasang), sementara /usrtidak (sampai disk menjadi besar). /varmenyimpan data sementara , sedangkan skrip ini tidak sementara.

Ini tidak sesederhana itu, tetapi mulai seperti itu dan ada sedikit alasan untuk mengolah ulang seluruh tata letak direktori.


1
Seperti yang Anda katakan, itu tidak sesederhana itu. Berbagai sistem UNIX komersial memiliki executable biner aktual /etcdi beberapa titik atau yang lain. Setidaknya init.dsebagian besar skrip pada sistem modern. Tetapi masih belum memungkinkan untuk /etcdipasang hanya.
Satō Katsura

2
@SatoKatsura: Dengan munculnya bahasa yang dikompilasi yang terasa seperti bahasa scripting, saya mulai memperhatikan beberapa skrip / etc (bahkan skrip init) digantikan oleh program go - binary executable.
slebetman

Ini juga menarik untuk dicatat bahwa penggantian sysVinit modern benar-benar menggunakan file konfigurasi sederhana alih-alih skrip lengkap, jadi /etcmungkin akan berakhir dengan membersihkan hal-hal yang bukan konfigurasi.
GnP

/tmpmemegang data sementara. /varmemegang data variabel
Neil McGuigan

14

Skrip startup sebenarnya merupakan bagian penting dari konfigurasi sistem.

Meskipun proses boot-up jauh lebih sedikit disesuaikan daripada 15-30 tahun yang lalu, dan sebagian besar konfigurasi startup telah diotomatisasi, semua pilihan administratif yang menentukan urutan start-up masih ada /etc.

Ini merupakan cara yang sangat tersentralisasi untuk memelihara dan mencadangkan konfigurasi sistem. Pada kebanyakan sistem, pencadangan /etcsudah cukup untuk memungkinkan instalasi ulang seluruh sistem dengan mudah. Anda cukup menginstal ulang sepenuhnya dengan program yang diperlukan, dan memulihkan /etccadangan Anda .


3

M. Dickey dan M. Pelletier sama-sama membeli di tempat pertanyaan. Tapi premisnya salah.

Jika Anda telah membaca bahwa " /etcini untuk file konfigurasi sistem" maka Anda telah membaca sesuatu yang tidak melukis gambar lengkap untuk Anda. Lihatlah namanya. Ini "dan lain-lain". Orang-orang telah meletakkan semuanya di wastafel dapur di sana pada satu waktu atau yang lain.

  • /etc/rc dulu (dan pada beberapa sistem masih) program dijalankan untuk memulai semuanya.
  • File gambar program untuk proses pengguna pertama ada /etc/initpada satu titik (dalam XENIX, misalnya, jauh sebelum pemula bahkan merupakan ide).
  • /etc/profile,, /etc/zprofiledan yang lainnya pasti skrip.
  • OpenBSD /etc/netstartadalah sebuah program; seperti halnya FreeBSD /etc/ipfw.rules.
  • Begitu juga dengan FreeBSD /etc/rc.suspenddan /etc/rc.resume; dan memang /etc/rc.sendmail, /etc/rc.bsdextended, dan /etc/rc.firewall.

Demikian pula, jika Anda telah membaca bahwa "skrip yang memulai / menghentikan / memulai kembali berbagai program biasanya /etcbukan /varatau /usratau sesuatu yang serupa" maka Anda telah membaca sesuatu yang lain yang tidak melukis gambar lengkap untuk Anda.

  • Konvensi FreeBSD / PC-BSD adalah memiliki /usr/local/etc/rc.d/direktori untuk rcskrip sistem yang tidak beroperasi . rcskrip untuk segala macam hal tinggal di sana daripada di bawah /etc.
  • Anda akan menemukan orang-orang daemontools-keluarga menempatkan beberapa hal manajemen pelayanan menjadi /var/sv, /var/service, dan tempat-tempat serupa. (My nosh toolset, misalnya, menyediakan hampir seribu bundel layanan /var/sv. Satu-satunya bundel layanan yang masuk /etc/service-bundlesadalah antara 60 dan 70 yang diperlukan sebelum /usrdipasang, termasuk layanan yang memasang dan memeriksa /usrjika perlu.)
  • sistem konvensi sistem operasi memiliki beberapa hal yang hidup /etc/systemd, beberapa barang masuk /run/systemd, beberapa barang masuk /usr/lib/systemd, dan ( meskipun tidak terdokumentasi karena alasan yang tidak dapat diterapkan ) beberapa hal masuk /usr/local/lib/systemd. Sekali lagi, mayoritas "hal-hal untuk memulai / menghentikan layanan" dapat ditemukan di bawah /usrdaripada di bawah /etc.

2

Anda sebaiknya meninjau Standar Hierarki Filesystem . Ini akan menjelaskan (secara terperinci) mengapa hal ini terjadi, tetapi juga berisi informasi seperti itu di banyak jalur lain yang mungkin membuat Anda penasaran.

Standar filesystem telah dirancang untuk digunakan oleh pengembang distribusi Unix, pengembang paket, dan pelaksana sistem. Namun, ini terutama dimaksudkan sebagai referensi dan bukan tutorial tentang cara mengelola sistem file Unix atau hirarki direktori.


Itu tidak menjelaskan latar belakang sejarah.
Thorbjørn Ravn Andersen

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.