Ada beberapa sistem init 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 ini mungkin menyebutkan mereka sehubungan dengan Ubuntu karena informasinya agak ketinggalan jaman (Ubuntu digunakan untuk 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 layanan ini harus dimulai pada saat boot; yang lain harus dimulai dalam mode multiuser tetapi tidak dalam mode pemeliharaan satu pengguna; dan dimungkinkan untuk menentukan mode yang berbeda dengan berbagai set layanan yang diinginkan. SysVinit mengelola ini melalui runlevel . Direktori /etc/rc$N.d
berisi skrip yang harus dijalankan ketika memasukkan 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, daripada menyimpan salinan skrip untuk setiap runlevel, skrip semua disimpan dalam satu lokasi /etc/init.d
, dan direktori runlevel-spesifik/etc/rc?.d
mengandung tautan simbolik. Lebih jauh lagi, nama-nama tautan simbolik mengindikasikan apakah layanan harus dimulai ( S*
) atau dihentikan (dibunuh, K*
) di runlevel itu, dan awalan numerik digunakan untuk mengontrol urutan di mana skrip dieksekusi.
Script yang bertanggung jawab untuk melintasi /etc/rc$N.d
adalah /etc/init.d/rc
(pada pra-Pemula Ubuntu dan pada Debian; lokasi dapat berbeda pada distribusi Linux lainnya).