Apa itu runlevel?
Runlevel adalah sebuah state (keadaan) operasi pada sistem Unix dan sistem operasi berbasis Unix (OS) yang sudah dipreset pada sistem berbasis Linux. Runlevel diberi nomor dari nol hingga enam, dan memiliki beberapa peran penting dalam operasi, pemeliharaan, serta manajemen sistem Linux dan Unix.
Runlevel adalah state operasi yang sudah dipreset, didefinisikan sebagai sebuah integer tunggal dengan rentang dari nol hingga enam pada OS berbasis Unix atau Linux. Dalam sistem tersebut, runlevel menentukan program mana yang bisa dieksekusi setelah OS selesai melakukan boot. Setiap runlevel mendefinisikan kondisi mesin setelah booting, menunjukkan konfigurasi sistem tertentu, serta menentukan layanan (services) apa saja yang aktif setelah OS berjalan.
Runlevel juga berperan penting dalam manajemen sistem Unix dan Linux. Secara umum, administrator sistem (sys admin) dapat menggunakan runlevel untuk melihat subsistem mana yang berjalan, berfungsi, atau gagal. Contohnya, runlevel 1 digunakan untuk maintenance dan perbaikan sistem. Runlevel 3 dan 5 digunakan untuk menjalankan sistem dalam mode multiuser dengan networking, sekaligus memastikan sistem berjalan normal pada mode ini. Sedangkan runlevel 0 dan 6 masing-masing digunakan untuk mematikan (shutdown) dan me-reboot sistem.
Ada berapa runlevel?
Pada Unix dan Linux, terdapat tujuh runlevel yang diberi nomor dari nol sampai enam. Setiap runlevel memiliki fungsi yang berbeda. Runlevel 1 hingga 6 biasanya digunakan untuk mode single-user, multiuser (dengan atau tanpa network), shutdown, dan reboot sistem. Konfigurasi detailnya bisa berbeda-beda tergantung pada distribusi Linux atau versi Unix yang digunakan.
Runlevel 0, 1, dan 6 selalu sama. Namun runlevel 2, 3, 4, dan 5 bisa berbeda tergantung pada distribusi Linux. Saat sistem booting, hanya satu runlevel yang dijalankan, bukan berurutan. Misalnya, hanya salah satu dari runlevel 4, 5, atau 6 yang dieksekusi, bukan 4 lalu 5 lalu 6. Runlevel 3 dan 5 mirip, dengan satu perbedaan utama: runlevel 5 mendukung graphical user interface (GUI), sedangkan runlevel 3 tidak.
Selain itu, setiap runlevel memiliki systemd-target masing-masing. Runlevel berhubungan dengan systemd-target tertentu. Systemd-target adalah metode untuk melakukan startup sistem berbasis Linux. Perbedaannya, systemd-target menggunakan command tertulis, sedangkan runlevel hanya berupa angka.
Tabel berikut menggambarkan tujuan dan systemd-target dari ketujuh runlevel:

Pentingnya runlevel
Runlevel suatu sistem bisa menunjukkan apakah jaringan (network) sedang berfungsi atau tidak. Selain itu, booting ke runlevel yang berbeda dapat membantu sys admin menemukan solusi atas masalah tertentu. Misalnya, boot ke runlevel 1 (single-user mode) bisa digunakan untuk memperbaiki masalah seperti gagal boot karena file konfigurasi yang rusak, atau ketika user sah tidak bisa login akibat file /etc/passwd yang corrupt atau password yang terlupa. Secara keseluruhan, runlevel memungkinkan sys admin mengontrol perilaku sistem dengan lebih baik serta menyelesaikan masalah akibat error pada sistem.
Menentukan dan mengetahui runlevel sistem
Sys admin dapat mengatur default runlevel sesuai kebutuhan. Pada kebanyakan sistem Linux dan Unix, jika admin tidak menentukan default runlevel, maka sistem akan otomatis boot ke runlevel 3 atau runlevel 5.
Dalam sistem ini, perintah init akan menginisialisasi berbagai proses. Proses ini dimulai dengan mencari default runlevel, lalu mengeksekusi script startup sesuai runlevel tersebut. Script ini bisa digunakan untuk menyalakan layanan jaringan, menginisialisasi hardware sistem, dan sebagainya. Pengguna juga bisa memodifikasi runlevel yang sudah ada, atau bahkan membuat runlevel baru sesuai kebutuhan. Namun, hal ini membutuhkan pengetahuan dan pengalaman mendalam dalam administrasi sistem Linux. Jika tidak, risiko masalah saat startup atau operasional sistem bisa muncul.
Script startup untuk setiap runlevel disimpan pada subdirektori rc di bawah /etc/rc.d. Subdirektori ini dinamai rc0.d, rc1.d, rc2.d, rc3.d, rc4.d, rc5.d, dan rc6.d. Jadi, script startup untuk runlevel 1 ada di /etc/rc.d/rc1.d, untuk runlevel 2 di /etc/rc.d/rc2.d, dan seterusnya.
Administrator juga bisa menggunakan perintah runlevel untuk mengetahui runlevel sistem saat ini. Perintah /sbin/runlevel bisa menampilkan runlevel saat ini dan sebelumnya. Alternatif lain adalah menggunakan perintah who –r.
Mengubah runlevel sistem
Runlevel sistem dapat diubah menggunakan perintah init. Misalnya, untuk menjalankan sistem dalam mode multiuser dengan networking, runlevel harus berada pada level 3. Jika sistem belum berada di runlevel tersebut, bisa diubah dengan perintah: sudo init 3.
Biasanya tidak perlu reboot untuk berpindah antar runlevel. Namun, untuk menjalankan sistem dalam mode GUI (runlevel 5), reboot bisa saja diperlukan, dengan catatan paket GUI harus sudah terinstal.
Pelajari perintah-perintah Unix penting beserta contohnya.