Runlevel adalah suatu set proses yang dijalankan suatu sistem Linux. Sistem Linux akan sangat bergantung kepada sebuah runlevel yang dijalankan. Dengan kata lain, runlevel adalah sekumpulan service-service dalam suatu sistem Linux. Di Linux terdapat 7 jenis runlevel, dimulai dari angka 0 sampai 6.
Berikut runlevel yang tersedia di Linux :
0 – Halt
1 – Single
2 – Not used/User definable
3 – Full multi-user NO display manager
4 – Not used/User definable
5 – Full multi-user with display manager (GUI)
6 – Reboot
Secara default untuk pengguna biasa menggunakan runlevel 5. Informasi tentang runlevel yang digunakan dapat dilihat di file /etc/inittab.
Ketika suatu runlevel dijalankan, maka dia akan menjalankan command-command yang ada di dalam directory rc*.d di /etc/rc*.d/. Contoh program yang ada di dalam rc*.d adalah :
S10sysklogd S20ppp S99gpm
S12kerneld S25netstd_nfs S99httpd
S15netstd_init S30netstd_misc S99rmnologin
S18netbase S45pcmcia S99sshd
S20acct S89atd
S20logoutd S89cron
rc * akan menjalankan program pada runlevel tersebut dengan command :
S10sysklogd start
S12kerneld start
S15netstd_init start
S18netbase start
…
…
S99sshd start
Huruf S pada barisan command di atas maksudnya command itu dijalankan di start mode. dan nomor dari 00 sampai 99 menandakan urutan command itu akan dijalankan.
Command-command rc*.d sebenarnya merupakan script yang menjalankan program di /sbin atau /usr/sbin.
Runlevel juga berperan dalam proses shutdown dan proses reboot, ketika perintah shutdown dijalankan, maka init akan mengubah runlevel menjadi runlevel 1 untuk halt. Sedangkan bila perintah reboot dijalankan, maka init akan mengubah runlevelnya menjadi runlevel 6. Itulah sebabnya jangan mejadikan runlevel 0 dan 6 sebagai initdefault.
Mengatur Service pada Tiap Run Level
Linux menjalankan jenis service yang berbeda-beda untuk tiap run level nya. Pada sub bagian ini kita akan mencoba mengatur macam-macam service yang berjalan secara otomatis pada tiap run level ketika Linux baru melakukan booting.
Untuk mengetahui run level yang sedang digunakan, dapat menggunakan perintah:
# runlevel
sedangkan untuk mengetahui services apa saja yang berjalan pada tiap run level dapat menggunakan perintah:
# chkconfig –list
yang hasilnya kira-kira akan tampak seperti berikut ini:
ipchains 0:off 1:off 2:on 3:on 4:on 5:on 6:off
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
crond 0:off 1:off 2:on 3:on 4:on 5:o 6:off
ntpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
portmap 0:off 1:off 2:off 3:on 4:on 5:on 6:off
xinetd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
identd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
radvd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rwhod 0:off 1:off 2:off 3:off 4:off 5:off 6:off
snmpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
rhnsd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
ypbind 0:off 1:off 2:off 3:off 4:off 5:off 6:off
sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
vncserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off
yppasswdd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ypserv 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ypxfrd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
named 0:off 1:off 2:off 3:off 4:off 5:off 6:off
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off
xinetd based services:
echo-udp: off
echo: off
time-udp: off
time: off
sgi_fam: on
finger: off
rexec: off
rlogin: off
rsh: off
ntalk: off
talk: off
telnet: on
wu-ftpd: on
rsync: off
swat: on
Untuk mengatur service apa saja yang akan bekerja pada level tertentu dapat menggunakan perintah:
# chkconfig –level <nama level> <nama servis> <on|off|reset>