/etc/rc.d vs /etc/init.d

15

Apakah /etc/init.ddirektori ubuntu sama persis (secara fungsional) dengan apa yang saya anggap lebih standar /etc/rc.d/(setidaknya pada lengkungan)? Apakah ada alasan tertentu kanonik digunakan init.d daripada rc.d untuk skrip startup?

Falmarri
sumber
1
sebenarnya arch linux adalah satu-satunya distro yang menggunakan /etc/rc.dyang saya lihat ... Saya curiga ini bisa digunakan dalam bsd.
xenoterracide
1
ini digunakan dalam freebsd
wlraider70

Jawaban:

16

Ubuntu menggunakan /etc/init.duntuk menyimpan skrip SysVinit karena Ubuntu didasarkan pada Debian dan itulah yang digunakan Debian. Red Hat menggunakan /etc/rc.d/init.d. Saya lupa apa yang digunakan Slackware. Tidak ada lokasi standar.

Ubuntu sedang dalam proses beralih dari SysVinit ke Upstart , yang menggunakan file konfigurasi di /etc/init.

Gilles 'SO- berhenti menjadi jahat'
sumber
2
Maaf, tetapi /etc/init.d adalah standar, sebagai bagian dari standar SVR4 yang disalin oleh Linux.
Rich Homolka
Situs web Upstart mengklaim Ubuntu telah menggunakannya sejak versi 6.10
badp
@badp: Meskipun 6.10, masih menggunakan skrip init SysV-style di /etc/init.d. Transisi untuk /etc/init/*.confdimulai nanti (8.04 masih bergaya SysV, 10.04 sudah transisi).
Gilles 'SANGAT berhenti menjadi jahat'
2
Ubuntu beralih dari Upstart ke systemd sejak 15.04.
PetroCliff
7

/etc/init.d adalah lokasi bersejarah lama untuk SVR4. Saya lupa mengapa redhat menambahkan level /etc/rc.d/. Saya pikir untuk mengisolasi hal-hal ke rc.d, tetapi kemudian perlu menambahkan banyak symlink untuk kompatibilitas. Jadi ada /etc/init.d di redhat, cukup symlink di tempat lain.

Jadi lokasi standar adalah /etc/init.d, meskipun itu mungkin symlink bukan direktori nyata.

Ada beberapa distro Linux yang benar-benar tua yang menyalin BSD dengan /etc/rc.local tetapi tidak banyak yang menggunakan itu lagi.

Homolka yang kaya
sumber
5

Secara historis, /etc/rc.dpohon direktori menunjukkan sistem Init yang mengikuti tradisi inisialisasi sistem BSD 4.4, yang biasanya disebut rcsistem init. Semua sistem BSD (Free / Open / Net) modern dan Slackware Linux mengikuti tradisi ini.

The /etc/init.dpohon direktori menunjukkan sistem init System V (SysV) yang mengikuti AT & T UNIX, SunOS, tradisi Solaris inisialisasi sistem. Ini biasa disebut sistem SysV Init. Debian yang tepat masih mengikuti tradisi ini di seri Wheezy, tetapi berencana untuk menggunakan SystemD di seri Jessie. Secara historis, RedHat dan turunannya telah menggunakan SysV Init, tetapi jangan lagi.

Selain itu, seiring waktu, fitur dari kedua skema init telah diadopsi oleh distribusi.

λ Jonas Gorauskas
sumber
Dan kemudian ada AIX dengan "/etc/rc.d/init.d/". Sedikit kolom A dan sedikit kolom B.
DarkHeart
0

Sebenarnya, setidaknya di CentOS 6.8 Santiago, /etc/init.dhanya softlink /etc/rc.d.

chechechris
sumber
Itulah tepatnya yang saya maksudkan, haha. Maaf tentang kesalahan pengejaan, saya mengedit balasan saya sekarang.
chromechris
Mengapa orang downvote tanpa memberikan penjelasan? Pernyataan itu kecuali jika sengaja tidak relevan masih dapat memiliki nilai atau makna bagi beberapa pembaca pemula. Jelaskan kapan Anda downvote. Saya memberi +1 untuk membatalkan efek -1
Asad Iqbal
0

PuppyLinux memiliki /etc/rc.d dan /etc/init.d , keduanya bukan merupakan symlink. Apa yang dimaksud dengan symlink adalah /etc/rc.d/init.d , yang menghubungkan level ke /etc/init.d (Saya sedang melihat Puppy berbasis Slackware-- ada juga rasa berbasis Ubuntu dan rasa lainnya .) Ada README.txt di masing-masing, menjelaskan pendekatan mereka.

Mark A. Williams
sumber
0

Ok jadi, /etc/init.dadalah tempat di mana Anda dapat dengan cepat menggunakan skrip init. Langkah kedua menuju mengaktifkan skrip ini adalah menjalankan chkconfigperintah di atasnya. Katakanlah Anda menjalankan chkconfig --add <yourscript>, tautan simbolik akan dibuat antara /etc/init.d/<yourscript>dan/etc/rc.d/rcX.d/S50<script>sebagai contoh. X di rcX.d mewakili runlevel number dari skrip, dan S50 mewakili tipe skrip (ada dua tipe ini, S & K, S memberitahu sistem untuk memulai skrip saat booting, dan K memberitahu sistem untuk keluar skrip dengan anggun ketika Anda mematikan. Nomor setelah S / K mewakili urutan di mana ini terjadi, jika Anda memiliki beberapa skrip yang bergantung pada orang lain yang aktif terlebih dahulu). Secara default, jika tidak ada runlevel yang ditentukan di dalam skrip atau ketika Anda mengeluarkan perintah runlevel, CentOS6 membuat skrip S50 untuk runlevel 2,3,4,5 dan K50 untuk runlevel 0,1,6.

chechechris
sumber