Aku sedang menjalankan Ubuntu di mana saya memiliki direktori /etc/rc0.d
, /etc/rc1.d
, /etc/rc2.d
, ..., /etc/rc6.d
.
Contoh file dari mesin saya:
directory example symlinks in the dir
------------------------------------------
/etc/rc1.d: K76dovecot, K77ntp
/etc/rc2.d: S23ntp, S24dovecot
/etc/rc3.d: S23ntp, S24dovecot
/etc/rc4.d: S23ntp, S24dovecot
/etc/rc5.d: S23ntp, S24dovecot
Pertanyaan:
- Apa tujuan dari beberapa direktori "rc"?
- Mengapa Ubuntu menginstal duplikat dari
dovecot
danntp
ke semua direktori kecualirc0.d
danrc6.d
? - Jika mereka ditentukan beberapa kali seperti di atas, apakah mereka benar-benar dieksekusi beberapa kali?
- Bisakah Anda memberi tahu dari atas dalam urutan apa
dovecot
danntp
akan dijalankan pada saat startup? - Apa cara yang tepat untuk memberitahu Ubuntu untuk selalu mengeksekusi
ntp
sebelumdovecot
saat startup?
services
init-script
init.d
roger.james
sumber
sumber
Seperti yang telah dicatat orang lain, jawabannya adalah semua tentang runlevel yang pada dasarnya adalah mode operasi sistem operasi. Di Linux, ini biasanya:
Jadi, setiap
rcN
direktori berisi tautan simbolis ke skrip yang harus dijalankan pada runlevel itu. Semua skrip aktual biasanya di/etc/init.d
direktori:Penamaan tautan simbolik
Tautan simbolis yang namanya dimulai dengan
S
akan dimulai pada runlevel yang dimaksud sementara mereka yang namanya dimulai denganK
akan dibunuh. Perhatikan bahwa semua tautan dirc6.d
, runlevel reboot, mulai denganK
. Itu karena mereka semua harus dihentikan untuk reboot dan tidak ada yang harus dimulai.Angka-angka setelah huruf awal merujuk pada urutan berjalan dari skrip yang ditautkan. Yang dengan angka lebih kecil akan dijalankan sebelum yang dengan angka lebih tinggi. Jadi, dalam contoh spesifik Anda,
S23ntp
akan dijalankan (dimulai dalam kasus ini) sebelumnyaS24dovecot
.sumber
S01bluetooth
danS01rsync
, apakah pesanannya akan berubah-ubah?S01
perbandingan akanb
<r
, Anda mendapatkan ide. Mungkin!/etc/init.d/rc
mengatakanfor s in /etc/rc$runlevel/S*; do …
, jadi hanya pergi dalam rangka ekspansi gumpal; yaitu, numerik / alfabet. Jawaban panjangnya adalah bahwa kode di sana jauh lebih rumit daripada yang saya ingat. Saya akan mencoba meluangkan waktu yang serius untuk mempelajarinya dalam waktu enam hingga delapan minggu ke depan. Pada pandangan pertama, sepertinya itu mengekstraksi angka setelahS
dan melakukan sesuatu dengannya, jadiS42beeblebrox
danS42zaphod
mungkin lebih erat terkait daripada, katakanlah,S43arthur
danS44dent
.1) Direktori multiple rcX.d menentukan layanan apa yang harus dimulai atau dihentikan selama runlevel 'X'.
2) rc0.d untuk runlevel 0 yang merupakan shutdown. rc6.d untuk reboot. Sisanya semua untuk runlevel yang berbeda (2 - 5). S adalah singkatan dari start dan K for Kill. Ini pada dasarnya adalah tautan ke skrip asli di /etc/rc.d. Angka-angka setelah S / K adalah prioritas dimana layanan akan dimulai / Dibunuh.
3) Ya jika ditentukan beberapa kali, skrip start / kill akan dijalankan beberapa kali. Tetapi tidak ada yang mau melakukan itu.
4) Melihat nomor prioritas, layanan ntp akan dimulai terlebih dahulu diikuti oleh dovecot.
5) Poin ke-4 adalah jalannya.
sumber