Mari lupakan init.d
atau rcx.d
dan menjaga hal-hal yang sangat sederhana. Bayangkan Anda sedang memprogram sebuah program yang satu-satunya tanggung jawabnya adalah menjalankan atau menghentikan skrip lain satu per satu.
Namun masalah Anda selanjutnya adalah memastikan mereka berjalan secara berurutan. Bagaimana Anda melakukannya?
Dan bayangkan program ini melihat ke dalam scripts
folder untuk menjalankan skrip. Untuk memesan prioritas skrip, Anda akan menamainya dalam urutan numerik. Urutan inilah yang menentukan hubungan antara init.d
dan rc
Dengan kata lain init.d
berisi skrip untuk dijalankan dan rcX.d
berisi perintah mereka untuk dijalankan.
X
nilai dalam rcX.d
adalah tingkat lari. Ini dapat diterjemahkan secara longgar ke status OS saat ini.
Jika Anda menggali di dalam rcX.d
skrip Anda akan menemukan format ini:
Xxxabcd
X
diganti denganK
atauS
, yang menunjukkan apakah skrip haruskilled
ataustarted
di level lari saat inixx
adalah nomor pesananabcd
adalah nama skrip (nama tidak relevan namun di mana itu menunjukkan skrip yang akan dijalankan)
Ada beberapa sistem init yang berbeda untuk Linux. Yang utama adalah SysVinit (yang tradisional), Pemula (pengganti Ubuntu), dan SystemD (didorong oleh Fedora dan Gnome). Direktori /etc/init.d
dan /etc/rc?.d
digunakan oleh SysVinit. Buku tersebut mungkin menyebutkannya sehubungan dengan Ubuntu karena informasinya agak kuno (Ubuntu dulu menggunakan SysVinit seperti orang lain) atau karena direktori tersebut masih ada untuk kompatibilitas.
/etc/init.d
berisi banyak skrip, masing-masing berisi instruksi untuk memulai dan menghentikan layanan. Beberapa dari layanan ini harus dimulai saat boot; yang lain harus dimulai dalam mode multipengguna tetapi tidak dalam mode pemeliharaan satu pengguna; dan dimungkinkan untuk menentukan mode yang berbeda dengan rangkaian layanan yang diinginkan yang berbeda. SysVinit mengelola ini melalui runlevel. Direktori /etc/rc$N.d
berisi skrip untuk dijalankan saat memasuki runlevel N (/etc/rc$N.d/S*
) dan skrip untuk dijalankan saat meninggalkan runlevel N (/etc/rc$N.d/K*
). Karena banyak runlevel memiliki skrip yang sama, alih-alih menyimpan salinan skrip untuk setiap runlevel, semua skrip disimpan di satu lokasi /etc/init.d
, dan direktori khusus runlevel /etc/rc?.d
mengandung tautan simbolik. Selain itu, nama tautan simbolik menunjukkan apakah layanan akan dimulai (S*
) atau berhenti (terbunuh, K*
) di runlevel tersebut, dan awalan angka digunakan untuk mengontrol urutan eksekusi skrip.
Skrip yang bertanggung jawab untuk melintasi /etc/rc$N.d
adalah /etc/init.d/rc
(di Ubuntu pra-Pemula dan di Debian; lokasi mungkin berbeda di distribusi Linux lainnya).
/etc/init.d
adalah direktori tempat skrip init berada.
etc/rcX.d
adalah tempat tautan yang mengontrol layanan mana yang dimatikan atau dimulai saat memasuki runlevel X
. File dalam rcX.d
dimulai dengan K dieksekusi dengan parameter stop
, dan file yang dimulai dengan S
dieksekusi dengan parameter start
. Biasanya mengurutkan startup dan stop order menggunakan dua digit angka setelah K
atau S
. Untuk memastikan pengurutan mulai dan berhenti yang tepat, biasanya kedua urutan dijumlahkan hingga 100.
Program dapat dinonaktifkan di run level dengan menghapus tautan atau mengubah kasus K
atau S
ke k
atau s
.
EDIT:Administrator biasanya menjalankan skrip dari /etc/init.d
yang mungkin merupakan tautan simbolis ke direktori lain tergantung pada distribusi. (Distribusi yang berbeda memiliki standar yang berbeda.)
rcX.d
digunakan oleh kode inisialisasi untuk mengubah level proses.