Pada bab sebelumnya Anda telah belajar memahami proses, mulai dari PID hingga cara melihat proses yang sedang berjalan. Kini Anda akan belajar mengendalikan proses tersebut. Kemampuan ini penting ketika sebuah aplikasi berhenti merespons, ketika Anda ingin menjalankan tugas di latar belakang, atau ketika Anda perlu mengatur prioritas sebuah proses. Bab ini membahas tiga kemampuan utama: mengirim signal untuk menghentikan proses, menjalankan proses di background, dan mengatur prioritas proses.
Mengirim Signal ke Proses
Proses di Linux dapat menerima signal, yaitu pesan kecil yang dikirim kernel atau pengguna untuk memberitahu proses melakukan sesuatu, misalnya berhenti. Signal memiliki nomor dan nama standar, meskipun yang paling sering Anda gunakan hanya beberapa di antaranya.
| Signal | Nomor | Keterangan |
|---|---|---|
| SIGHUP | 1 | Memberi tahu proses bahwa terminal induknya telah ditutup, sering dipakai untuk meminta service memuat ulang konfigurasi |
| SIGINT | 2 | Sinyal interupsi, sama seperti menekan Ctrl+C |
| SIGKILL | 9 | Memaksa proses berhenti seketika dan tidak dapat diabaikan |
| SIGTERM | 15 | Meminta proses berhenti secara sopan (default signal kill) |
| SIGSTOP | 19 | Menghentikan sementara proses (tidak dapat diabaikan) |
| SIGCONT | 18 | Melanjutkan kembali proses yang dihentikan sementara |
Untuk melihat daftar lengkap seluruh signal beserta nomornya, gunakan kill -l.
kill -lPerintah utama untuk mengirim signal adalah kill, killall, dan pkill.
kill: Mengirim Signal (Default: SIGTERM)
Perintah kill mengirim signal ke sebuah proses berdasarkan PID-nya. Secara bawaan, kill mengirim signal SIGTERM (terminate), yang meminta proses untuk berhenti secara sopan.
kill 1234SIGTERM memberi kesempatan proses untuk membersihkan diri, misalnya menyimpan data atau menutup file, sebelum benar-benar berhenti. Karena itu, SIGTERM adalah cara yang paling aman untuk menghentikan proses.
Untuk mengetahui PID sebuah proses, Anda dapat menggunakan ps seperti yang telah dipelajari sebelumnya, atau pidof yang langsung mengembalikan PID berdasarkan nama program.
pidof firefoxPID yang dikembalikan oleh pidof dapat langsung Anda gunakan sebagai argumen untuk kill.
kill -9 (SIGKILL): Memaksa Menghentikan Proses
Ketika sebuah proses tidak merespons SIGTERM, Anda dapat memaksanya berhenti menggunakan signal SIGKILL, yang biasanya ditulis sebagai kill -9.
kill -9 1234SIGKILL tidak dapat diabaikan oleh proses dan langsung menghentikannya secara paksa. Karena proses tidak diberi kesempatan membersihkan diri, gunakan kill -9 hanya sebagai pilihan terakhir setelah SIGTERM tidak berhasil. Data yang belum disimpan oleh proses tersebut kemungkinan besar akan hilang.
killall dan pkill: Menghentikan Proses Berdasarkan Nama
Jika Anda tidak ingin mencari PID terlebih dahulu, gunakan killall atau pkill untuk menghentikan proses berdasarkan namanya.
killall firefoxpkill firefoxkillall menghentikan seluruh proses yang cocok dengan nama persis, sedangkan pkill lebih fleksibel karena mendukung pencocokan pola. Keduanya memudahkan Anda menghentikan aplikasi tanpa perlu repot mencari PID-nya, dan keduanya juga menerima opsi -9 untuk mengirim SIGKILL, misalnya pkill -9 firefox.
Menjalankan Proses di Background
Secara bawaan, perintah yang Anda jalankan di terminal berjalan di foreground dan menguasai terminal sampai selesai. Anda dapat menjalankan proses di background agar terminal tetap bebas digunakan untuk perintah lain.
&: Menjalankan di Background
Tambahkan tanda & di akhir perintah untuk menjalankannya di background.
sleep 300 &Perintah sleep 300 di atas akan berjalan di latar belakang selama lima menit, sementara terminal langsung mengembalikan kendali kepada Anda.
Ctrl+Z: Menghentikan Sementara Proses Foreground
Selain menjalankan perintah langsung ke background dengan &, Anda juga dapat memindahkan proses yang sedang berjalan di foreground ke background. Caranya, tekan Ctrl+Z saat proses sedang berjalan. Kombinasi tombol ini mengirim signal SIGTSTP yang menghentikan proses sementara (masuk ke state Stopped, sebagaimana dibahas pada bab sebelumnya) dan mengembalikan kendali terminal kepada Anda.
^Z
[1]+ Stopped nano catatan.txtProses yang dihentikan dengan Ctrl+Z tidak benar-benar berjalan di background, melainkan sekadar dibekukan. Untuk benar-benar melanjutkannya di background, gunakan perintah bg yang akan dibahas berikutnya.
jobs: Melihat Daftar Background Jobs
Untuk melihat proses yang sedang berjalan di background pada sesi terminal Anda, gunakan jobs.
jobsPerintah ini menampilkan daftar pekerjaan beserta nomor dan statusnya, misalnya Running untuk job yang sedang aktif di background atau Stopped untuk job yang dibekukan dengan Ctrl+Z.
fg dan bg: Memindahkan Proses
Anda dapat memindahkan proses antara foreground dan background. Gunakan fg untuk membawa sebuah job kembali ke foreground, dan bg untuk melanjutkan job yang berstatus Stopped agar berjalan kembali di background.
fg %1bg %1Angka %1 merujuk pada nomor job yang ditampilkan oleh jobs. Alur yang umum digunakan adalah menjalankan perintah, menekan Ctrl+Z ketika ingin mengembalikan kendali terminal, lalu mengetik bg agar proses tersebut tetap berjalan di background.
nohup: Proses Tetap Berjalan Setelah Logout
Biasanya, proses yang dijalankan di terminal akan ikut berhenti ketika Anda menutup terminal atau keluar dari sesi, karena proses tersebut menerima signal SIGHUP. nohup ("no hang up") mencegah hal tersebut sehingga proses tetap berjalan meskipun Anda logout.
nohup perintah &Keluaran dari proses akan disimpan ke file bernama nohup.out di direktori aktif. nohup sangat berguna untuk tugas yang memakan waktu lama dan Anda ingin tetap berjalan setelah meninggalkan sesi.
Prioritas Proses
Kernel menjadwalkan waktu prosesor untuk setiap proses berdasarkan prioritasnya. Prioritas ini dapat Anda atur menggunakan nice dan renice.
nice: Menjalankan Proses dengan Prioritas Tertentu
Perintah nice menjalankan sebuah proses dengan nilai niceness tertentu. Nilai niceness berkisar antara -20 (prioritas tertinggi) hingga 19 (prioritas terendah), dengan nilai default 0 untuk proses baru. Nilai yang lebih besar berarti proses lebih "ramah" karena memberi kesempatan kepada proses lain.
nice -n 10 perintahPengguna biasa hanya dapat menaikkan nilai niceness (menurunkan prioritas). Menurunkan nilai niceness untuk menaikkan prioritas memerlukan hak administratif.
renice: Mengubah Prioritas Proses yang Berjalan
Untuk mengubah prioritas proses yang sudah berjalan, gunakan renice.
sudo renice -n 5 -p 1234Perintah di atas mengubah nilai niceness proses dengan PID 1234 menjadi 5. Prioritas berguna ketika ada proses yang memakan banyak sumber daya dan Anda ingin membatasinya, atau sebaliknya ingin memberi prioritas lebih pada proses yang penting. Anda dapat memverifikasi nilai niceness yang baru dengan melihat kolom NI pada ps -eo pid,ni,comm atau pada tampilan top/htop.
Mengelola proses adalah keterampilan dasar yang akan sering Anda gunakan. Melalui pemahaman terhadap signal, kill, killall, pkill, serta cara menjalankan proses di background dan mengatur prioritasnya, Anda dapat mengendalikan aplikasi yang berjalan di sistem Anda dengan lebih baik. Pada bab berikutnya, Anda akan mengenal systemd, sistem init modern yang mengelola service dan log di Ubuntu 26.04 LTS maupun Fedora Workstation 44.

