Yang Perlu Anda Ketahui Tentang Proses di Linux [Panduan Komprehensif]
Pada artikel ini, kita akan membahas pemahaman dasar tentang proses dan melihat secara singkat cara mengelola proses di Linux menggunakan perintah tertentu.
Proses mengacu pada program yang sedang dieksekusi; ini adalah contoh program yang sedang berjalan. Itu terdiri dari instruksi program, data yang dibaca dari file, program lain atau masukan dari pengguna sistem.
Jenis Proses
Pada dasarnya ada dua jenis proses di Linux:
- Proses latar depan (juga disebut sebagai proses interaktif) – proses ini diinisialisasi dan dikontrol melalui sesi terminal. Dengan kata lain, harus ada pengguna yang terhubung ke sistem untuk memulai proses tersebut; mereka belum memulai secara otomatis sebagai bagian dari fungsi/layanan sistem.
- Proses latar belakang (juga disebut sebagai proses non-interaktif/otomatis) – adalah proses yang tidak terhubung ke terminal; mereka tidak mengharapkan masukan pengguna apa pun.
Apa itu Daemon
Ini adalah jenis proses latar belakang khusus yang dimulai saat startup sistem dan terus berjalan selamanya sebagai layanan; mereka tidak mati. Mereka dimulai sebagai tugas sistem (dijalankan sebagai layanan), secara spontan. Namun, mereka dapat dikontrol oleh pengguna melalui proses init.
Pembuatan Proses di Linux
Proses baru biasanya dibuat ketika proses yang sudah ada membuat salinan persis dari dirinya di memori. Proses anak akan mempunyai lingkungan yang sama dengan induknya, namun hanya nomor ID prosesnya saja yang berbeda.
Ada dua cara konvensional yang digunakan untuk membuat proses baru di Linux:
- Menggunakan Fungsi System() – metode ini relatif sederhana, namun tidak efisien dan memiliki risiko keamanan tertentu yang signifikan.
- Menggunakan Fungsi fork() dan exec() – teknik ini sedikit lebih maju namun menawarkan fleksibilitas, kecepatan, dan keamanan yang lebih baik.
Bagaimana Linux Mengidentifikasi Proses?
Karena Linux adalah sistem multi-pengguna, artinya pengguna yang berbeda dapat menjalankan berbagai program di sistem, setiap program yang berjalan harus diidentifikasi secara unik oleh kernel.
Dan suatu program diidentifikasi berdasarkan ID prosesnya (PID) serta ID proses induknya (PPID), sehingga proses selanjutnya dapat dikategorikan menjadi:
- Proses induk – ini adalah proses yang membuat proses lain selama run-time.
- Proses turunan – proses ini dibuat oleh proses lain selama waktu proses.
Proses Init
Proses Init adalah induk (induk) dari semua proses pada sistem, ini adalah program pertama yang dijalankan ketika sistem Linux melakukan booting; ia mengelola semua proses lain pada sistem. Ini dimulai oleh kernel itu sendiri, jadi pada prinsipnya tidak memiliki proses induk.
Proses init selalu memiliki ID proses 1. Ini berfungsi sebagai orang tua angkat untuk semua proses yatim piatu.
Anda dapat menggunakan perintah pidof untuk menemukan ID suatu proses:
pidof systemd
pidof top
pidof httpd
Untuk menemukan ID proses dan ID proses induk dari shell saat ini, jalankan:
echo $$
echo $PPID
Memulai Proses di Linux
Setelah Anda menjalankan perintah atau program (misalnya cloudcmd – CloudCommander), itu akan memulai proses di sistem. Anda dapat memulai proses latar depan (interaktif) sebagai berikut, proses tersebut akan terhubung ke terminal dan pengguna dapat mengirimkan masukannya:
cloudcmd
Pekerjaan Latar Belakang Linux
Untuk memulai proses di latar belakang (non-interaktif), gunakan simbol &
, di sini proses tidak membaca masukan dari pengguna sampai dipindahkan ke latar depan.
cloudcmd &
jobs
Anda juga dapat mengirim suatu proses ke latar belakang dengan menangguhkannya menggunakan [Ctrl + Z]
, ini akan mengirimkan sinyal SIGSTOP ke proses tersebut, sehingga menghentikan operasinya; itu menjadi menganggur:
tar -cf backup.tar /backups/* #press Ctrl+Z
jobs
Untuk terus menjalankan perintah yang ditangguhkan di atas di latar belakang, gunakan perintah bg:
bg
Untuk mengirim proses latar belakang ke latar depan, gunakan perintah fg bersama dengan ID pekerjaan seperti ini:
jobs
fg %1
Anda mungkin juga menyukai: Cara Memulai Perintah Linux di Latar Belakang dan Melepaskan Proses di Terminal
Status Proses di Linux
Selama eksekusi, suatu proses berubah dari satu keadaan ke keadaan lain tergantung pada lingkungan/keadaannya. Di Linux, suatu proses memiliki kemungkinan status berikut:
- Berjalan – di sini sedang berjalan (proses saat ini dalam sistem) atau siap dijalankan (menunggu untuk ditugaskan ke salah satu CPU).
- Menunggu – dalam keadaan ini, suatu proses menunggu terjadinya peristiwa atau sumber daya sistem. Selain itu, kernel juga membedakan dua jenis proses menunggu; proses menunggu yang dapat diinterupsi – dapat diinterupsi oleh sinyal dan proses menunggu yang tidak dapat diputus – menunggu secara langsung pada kondisi perangkat keras dan tidak dapat diinterupsi oleh kejadian/sinyal apa pun.
- Berhenti – dalam keadaan ini, suatu proses telah dihentikan, biasanya dengan menerima sinyal. Misalnya, suatu proses yang sedang di-debug.
- Zombie – di sini, suatu proses mati, telah dihentikan namun masih ada entri di tabel proses.
Cara Melihat Proses Aktif di Linux
Ada beberapa alat Linux untuk melihat/mendaftar proses yang berjalan pada sistem, dua yang tradisional dan terkenal adalah perintah ps dan top:
1. ps Perintah
Ini menampilkan informasi tentang pilihan proses aktif pada sistem seperti yang ditunjukkan di bawah ini:
ps
ps -e | head
2. atas – Alat Pemantauan Sistem
top adalah alat canggih yang menawarkan tampilan real-time dinamis dari sistem yang sedang berjalan seperti yang ditunjukkan pada gambar di bawah:
top
Baca ini untuk contoh penggunaan teratas lainnya: 12 Contoh Perintah TOP di Linux
3. sekilas – Alat Pemantauan Sistem
glance adalah alat pemantauan sistem yang relatif baru dengan fitur-fitur canggih:
glances
Untuk panduan penggunaan yang komprehensif, bacalah: Sekilas – Alat Pemantauan Sistem Real Time Tingkat Lanjut untuk Linux
Ada beberapa alat pemantauan sistem Linux berguna lainnya yang dapat Anda gunakan untuk membuat daftar proses aktif, buka tautan di bawah untuk membaca lebih lanjut tentang proses tersebut:
- 20 Alat Baris Perintah untuk Memantau Kinerja Linux
- 13 Alat Pemantauan Linux yang Lebih Berguna
Cara Mengontrol Proses di Linux
Linux juga memiliki beberapa perintah untuk mengendalikan proses seperti kill, pkill, pgrep dan killall, berikut adalah beberapa contoh dasar cara menggunakannya:
pgrep -u tecmint top
kill 2308
pgrep -u tecmint top
pgrep -u tecmint glances
pkill glances
pgrep -u tecmint glances
Untuk mempelajari cara menggunakan perintah ini secara mendalam, untuk mematikan/menghentikan proses aktif di Linux, buka tautan di bawah:
- Panduan Perintah Kill, Pkill dan Killall untuk Menghentikan Proses Linux
- Cara Menemukan dan Menghentikan Proses yang Berjalan di Linux
Perhatikan bahwa Anda dapat menggunakannya untuk mematikan aplikasi yang tidak responsif di Linux ketika sistem Anda macet.
Mengirim Sinyal Ke Proses
Cara mendasar untuk mengendalikan proses di Linux adalah dengan mengirimkan sinyal ke proses tersebut. Ada beberapa sinyal yang dapat Anda kirim ke suatu proses, untuk melihat semua sinyal yang dijalankan:
kill -l
Untuk mengirim sinyal ke suatu proses, gunakan perintah kill, pkill atau pgrep yang telah kami sebutkan sebelumnya. Namun program hanya dapat merespons sinyal jika diprogram untuk mengenali sinyal tersebut.
Dan sebagian besar sinyal ditujukan untuk penggunaan internal oleh sistem, atau untuk pemrogram saat mereka menulis kode. Berikut ini adalah sinyal yang berguna bagi pengguna sistem:
- SIGHUP 1 – dikirim ke suatu proses ketika terminal pengontrolnya ditutup.
- SIGINT 2 – dikirim ke suatu proses oleh terminal pengontrolnya ketika pengguna menghentikan proses dengan menekan
[Ctrl+C]
. - SIGQUIT 3 – dikirim ke suatu proses jika pengguna mengirimkan sinyal keluar
[Ctrl+D]
. - SIGKILL 9 – sinyal ini segera menghentikan (mematikan) suatu proses dan proses tersebut tidak akan melakukan operasi pembersihan apa pun.
- SIGTERM 15 – ini adalah sinyal penghentian program (kill akan mengirimkannya secara default).
- SIGTSTP 20 – dikirim ke suatu proses oleh terminal pengontrolnya untuk memintanya berhenti (terminal stop); dimulai oleh pengguna dengan menekan
[Ctrl+Z]
.
Berikut ini adalah contoh perintah kill untuk mematikan aplikasi Firefox menggunakan PID-nya setelah macet:
pidof firefox
kill 9 2687
OR
kill -KILL 2687
OR
kill -SIGKILL 2687
Untuk mematikan aplikasi menggunakan namanya, gunakan pkill atau killall seperti:
pkill firefox
killall firefox
Mengubah Prioritas Proses Linux
Pada sistem Linux, semua proses aktif memiliki prioritas dan nilai bagus tertentu. Proses dengan prioritas lebih tinggi biasanya akan mendapatkan lebih banyak waktu CPU dibandingkan proses dengan prioritas lebih rendah.
Namun, pengguna sistem dengan hak akses root dapat mempengaruhi hal ini dengan perintah bagus dan renice.
Dari output perintah teratas, NI menunjukkan nilai proses yang bagus:
top
Gunakan perintah bagus untuk menetapkan nilai bagus untuk suatu proses. Perlu diingat bahwa pengguna biasa dapat mengatribusikan nilai bagus dari nol hingga 20 ke proses yang mereka miliki.
Hanya pengguna root yang dapat menggunakan nilai negatif Nice.
Untuk renice prioritas suatu proses, gunakan perintah renice sebagai berikut:
renice +8 2687
renice +8 2103
Lihat beberapa artikel bermanfaat kami tentang cara mengelola dan mengontrol proses Linux.
- Manajemen Proses Linux: Boot, Shutdown, dan Segala Sesuatu di Antaranya
- Temukan 15 Proses Teratas berdasarkan Penggunaan Memori dengan 'atas' dalam Mode Batch
- Temukan Proses yang Berjalan Teratas berdasarkan Memori Tertinggi dan Penggunaan CPU di Linux
- Cara Menemukan Nama Proses Menggunakan Nomor PID di Linux
Itu saja untuk saat ini! Jika Anda memiliki pertanyaan atau ide tambahan, sampaikan kepada kami melalui formulir masukan di bawah.