Saat Anda menjalankan sebuah program di Linux, sistem menciptakan sesuatu yang disebut proses. Proses adalah inti dari cara Linux menjalankan banyak tugas sekaligus, baik itu aplikasi grafis, perintah di terminal, maupun layanan yang berjalan di latar belakang. Memahami proses membantu Anda mengetahui apa yang sedang terjadi di sistem, mendeteksi program yang bermasalah, dan kelak mengelola proses tersebut. Bab ini menjelaskan konsep proses, identitasnya, keadaannya, serta cara melihat proses yang sedang berjalan menggunakan ps, top, htop, pstree, hingga aplikasi grafis System Monitor.
Apa Itu Proses?
Sebuah proses adalah program yang sedang dieksekusi. Program hanyalah file pasif yang tersimpan di disk, tetapi ketika dijalankan, program tersebut dimuat ke dalam memori dan menjadi proses aktif. Satu program dapat berjalan dalam beberapa proses sekaligus. Sebagai contoh, ketika Anda membuka dua jendela terminal, masing-masing jendela adalah proses yang berbeda meskipun keduanya menjalankan program yang sama.
Setiap proses memiliki ruang memori, hak akses, dan sumber daya sendiri yang diisolasi dari proses lain. Isolasi inilah yang membuat satu aplikasi yang bermasalah tidak langsung mengganggu seluruh sistem.
PID (Process ID) dan PPID (Parent PID)
Setiap proses diberi nomor identitas unik yang disebut PID (Process ID). Kernel menggunakan PID untuk melacak dan mengelola setiap proses. Nomor PID diberikan secara berurutan ketika proses baru dimulai, dan akan kembali dari nilai kecil setelah mencapai batas maksimum yang ditentukan oleh kernel (/proc/sys/kernel/pid_max).
Selain PID, setiap proses juga memiliki PPID (Parent Process ID), yaitu PID dari proses induk yang melahirkannya. Sebagian besar proses memiliki induk, kecuali satu proses pertama yang dijalankan saat sistem dinyalakan. Proses pertama tersebut memiliki PID 1 dan dijalankan oleh init system, yaitu systemd pada Ubuntu 26.04 LTS dan Fedora Workstation 44.
Hubungan induk-anak ini membentuk struktur pohon proses. Ketika Anda membuka terminal lalu menjalankan perintah, proses terminal menjadi induk dari proses perintah tersebut.
Seluruh informasi proses yang ditampilkan oleh ps, top, dan perkakas sejenis sebenarnya diambil langsung dari filesystem virtual /proc yang telah dibahas pada Bab 12. Setiap proses yang sedang berjalan memiliki subdirektori sendiri di /proc/<PID>, misalnya /proc/1 untuk proses systemd, yang berisi berkas-berkas seperti status, cmdline, dan environ yang mendeskripsikan keadaan proses tersebut.
State Proses
Pada setiap saat, sebuah proses berada dalam salah satu keadaan (state) berikut.
| State | Simbol | Keterangan |
|---|---|---|
| Running | R | Proses sedang berjalan atau menunggu giliran CPU |
| Sleeping | S | Proses menunggu suatu peristiwa dan dapat dibangunkan |
| Uninterruptible sleep | D | Proses menunggu operasi I/O dan tidak dapat diinterupsi |
| Stopped | T | Proses dihentikan sementara oleh signal |
| Zombie | Z | Proses telah selesai tetapi belum dibersihkan oleh induknya |
Sebagian besar proses menghabiskan waktunya dalam keadaan sleeping karena menunggu input, jaringan, atau peristiwa lain. Proses zombie adalah proses yang sudah selesai dieksekusi tetapi entri datanya belum dihapus oleh induknya, biasanya dalam waktu singkat. Jika sebuah proses zombie bertahan dalam jumlah besar dan dalam waktu lama, hal ini biasanya menandakan proses induknya tidak menangani proses anak dengan benar, dan cara mengatasinya akan dibahas pada bab berikutnya.
Foreground vs Background Process
Proses dapat berjalan dalam dua mode, yaitu foreground dan background.
- Foreground process berjalan di depan dan menguasai terminal, sehingga Anda tidak dapat mengetik perintah lain sampai proses tersebut selesai atau dihentikan.
- Background process berjalan di belakang layar tanpa menguasai terminal, sehingga Anda tetap dapat melanjutkan pekerjaan lain.
Cara menjalankan proses di background dan mengelolanya akan dibahas lebih lanjut pada bab berikutnya.
Melihat Proses yang Berjalan
Linux menyediakan beberapa perintah untuk melihat proses yang sedang berjalan.
ps: Snapshot Proses
Perintah ps (process status) menampilkan gambaran proses pada satu waktu tertentu. Dijalankan tanpa opsi, ps hanya menampilkan proses yang berjalan pada terminal Anda. Untuk melihat seluruh proses di sistem, gunakan opsi berikut.
ps auxps -efKedua perintah tersebut menampilkan seluruh proses dengan informasi seperti PID, pengguna, penggunaan CPU dan memori, serta perintah yang memulai proses. Perbedaan keduanya terletak pada gaya tampilan, ps aux memakai gaya BSD sedangkan ps -ef memakai gaya System V. Kolom-kolom yang paling sering diperhatikan pada output ps aux adalah sebagai berikut.
| Kolom | Keterangan |
|---|---|
| USER | Pengguna yang memiliki proses tersebut |
| PID | Nomor identitas proses |
| %CPU | Persentase penggunaan CPU oleh proses |
| %MEM | Persentase penggunaan RAM oleh proses |
| STAT | State proses, misalnya R, S, atau Z |
| START | Waktu proses mulai dijalankan |
| COMMAND | Perintah atau program yang menjalankan proses tersebut |
Untuk mencari proses tertentu di antara ratusan proses yang berjalan, Anda biasanya menyalurkan output ps ke grep.
ps aux | grep firefoxtop: Monitor Proses Real-Time
Perintah top menampilkan proses secara dinamis dan diperbarui secara berkala.
topPada tampilan top, proses diurutkan berdasarkan penggunaan CPU secara bawaan. Tekan q untuk keluar. Perintah ini berguna untuk memantau proses yang menghabiskan sumber daya secara langsung.
htop: Monitor Proses Interaktif
htop adalah versi top yang lebih lengkap dan interaktif, menampilkan informasi dengan warna serta mendukung navigasi menggunakan tombol panah dan mouse. htop biasanya tidak terinstal secara bawaan, sehingga Anda perlu menginstalnya terlebih dahulu.
sudo apt install htopsudo dnf install htopSetelah terinstal, jalankan dengan:
htopBerbeda dengan top, htop menyediakan sejumlah tombol fungsi (function key) di bagian bawah layar untuk berinteraksi langsung dengan daftar proses.
| Tombol | Fungsi |
|---|---|
F3 | Mencari proses berdasarkan nama |
F4 | Memfilter daftar proses yang ditampilkan |
F5 | Menampilkan proses dalam bentuk pohon (tree view) |
F6 | Mengurutkan proses berdasarkan kolom tertentu |
F9 | Mengirim signal untuk menghentikan proses yang dipilih |
F10 atau q | Keluar dari htop |
pstree: Melihat Struktur Pohon Proses
Sebagaimana disebutkan sebelumnya, hubungan induk-anak antar proses membentuk struktur pohon. Perintah pstree menampilkan struktur ini secara visual, sehingga Anda dapat melihat proses mana yang melahirkan proses lain, mulai dari systemd (PID 1) hingga ke proses yang paling baru dijalankan.
pstreeTambahkan opsi -p untuk menampilkan PID di samping setiap nama proses.
pstree -ppstree sangat berguna ketika Anda ingin mengetahui proses induk dari sebuah aplikasi yang macet, misalnya untuk memastikan Anda menghentikan proses yang tepat tanpa mematikan proses induk yang masih dibutuhkan. Perintah ini sudah tersedia secara bawaan di Ubuntu 26.04 LTS dan Fedora Workstation 44 karena merupakan bagian dari paket psmisc.
System Monitor (GUI) di GNOME
Jika Anda lebih menyukai antarmuka grafis, GNOME menyediakan aplikasi System Monitor. Aplikasi ini menampilkan daftar proses, penggunaan CPU, memori, dan jaringan dalam bentuk grafik, serta memungkinkan Anda menghentikan proses langsung dari antarmuka tanpa mengetik perintah. Anda dapat membukanya melalui pencarian aplikasi dengan mengetikkan "System Monitor" atau "Monitor Sistem", maupun lewat terminal dengan perintah gnome-system-monitor.
Memahami proses adalah fondasi untuk mengelola sistem Linux secara efektif. Anda kini mengenal PID, PPID, hubungan induk-anak beserta kaitannya dengan /proc, berbagai keadaan proses, serta cara memantaunya melalui ps, top, htop, pstree, dan System Monitor. Pada bab berikutnya, Anda akan mempelajari cara mengendalikan proses, mulai dari mengirim signal dan menghentikan proses yang macet hingga menjalankan tugas di latar belakang.

