Sebenarnya tidak ada yang spesial dengan init. Init adalah sebuah program biasa seperti program-program lainnya di Linux dan bisa ditemukan di directory /sbin. Fungsi utama dari sebuah program init adalah menjalankan dan menghentikan program-program lain dalam suatu urutan tertentu. Dan yang paling penting kita pelajari dari sebuah program init adalah bagaimana urutan-urutan pengeksekusian program-program lain itu bekerja.
Program init sendiri sebenarnya memiliki banyak variasi, untuk Linux kebanyakan menggunakan System V. Ada juga yang menggunakan BSD Style terutama untuk keluarga BSD).
Init berkaitan erat dengan program-program lain dan file konfigurasi lain dalam menjalankan fungsinya. Antara lain yang penting adalah runlevels dan file /etc/inittab.
Dikarenakan init adalah proses pertama dalam suatu sistem. Proses ID nya selalu bernilai 1. Maka init haruslah selalu up-to-date dengan membaca pergantian konfigurasi di file /etc/inittab dan perubahan runlevel yang terjadi. Untuk mengontrol program init itu dapat dilakukan dengan perintah beriktu ini :
telinit 3 //untuk berpindah ke runlevel 3
Hati-hati dalam menjalankan perintah di atas, ketika dilakukan perubahan runlevel, maka init akan mencoba menghentikan semua proses pada runlevel sebelumnya yang terdapat pada file /etc/inittab dan memulai proses baru berdasarkan runlevel yang dipilih.
Perlu diingat juga, ketika melakukan perubahan-perubahan penting pada service yang dijalankan oleh suatu runlevel seperti penambahan dan pengurangan service yang dijalankan serta perubahan pada file /etc/inittab. Init harus diberitahu tentang perubahan tersebut, caranya adalah dengan mengetikkan perintah berikut ini :
telinit q
Selain itu, anda juga dapat berpindah ke single user mode, dengan mengetikkan perintah
telinit s
/etc/inittab
File inittab adalah suatu file konfigurasi yang berisi informasi tentang runlevel yang sedang dijalankan system dan mode serta fungsi masing-masing runlevel.
Berikut adalah baris-baris penting dalam file inittab yand dapat memberikan informasi tentang runlvel dan command yang dijalankan.
Perhatikan baris berikut ini:
id:5:initdefault:
Maksud dari baris di atas adalah bahwa runlevel yang dijalankan adalah runlevel 5 sebagai initdefault. Baris di atas akan mempengaruhi baris-baris berikut ini. Dari baris-baris berikut ini, command yang dijalankan adalah yang runlevelnya sesuai dengan baris di atas.
l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
……………..
l6:5:wait:/etc/rc.d/rc 6
Baris di atas memiliki makna sebagai berikut :
- Kolom kedua memberikan informasi bahwa runlevel yang dijalankan adalah runlevel 5
- Kolom ketiga adalah mode dalam menjalankan runlevel yang bersangkutan. Wait berarti bahwa system akan menunggu dan tidak melakukan apa-apa selama service-service yang berhubungan dengan runlevel tersebut dijalankan.
- Kolom keempat berisi informasi tentang service-service yang dijalankan oleh runlevel yang bersangkutan. rc adalah singkatan dari run command.
Ada juga mode dalam baris level itu yang tidak kalah penting, yaitu mode respawn.
1:2345:respawn:/sbin/mingetty 9tty1
Respawn ini berfungsi untuk menjalankan suatu program kemudian menjalankannya lagi ketika program tersebut setelah selesai dieksekusi. Contohnya adalah program getty, program getty ini adalah program yang meminta username dan password ketika akan masuk ke dalam suatu system. Ketika suatu virtual console (tty) selesai dijalankan, maka otomatis getty akan dijalankan lagi untuk meminta kembali username dan passwordnya.