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>
