Pengurusan Proses Unix/Linux

Hello, para pemrogram yang sedang belajar! Hari ini, kita akan memulakan sebuah perjalanan menarik ke dalam dunia proses Unix/Linux. Sebagai guru sains komputer yang ramah di sebelah Anda, saya sangat gembira untuk membimbing Anda melalui konsep fundamental ini. Jangan khawatir jika Anda baru dalam bidang pemrograman - kita akan mulai dari dasar dan maju ke arah yang lebih tinggi. Jadi, ambil secangkir kopi (atau teh, jika itu yang Anda sukai), dan mari kita masuk kedalamnya!

Unix / Linux - Processes

Apa Itu Proses?

Sebelum kita memulakan, mari kita mengerti apa sebenarnya proses itu. Bayangkan Anda berada di dapur yang sibuk. Setiap tukang masak yang bekerja pada makanan tertentu dapat dianggap sebagai proses. Mereka memiliki bahan masing-masing (sumber), resep (program), dan tujuan (keluaran). Dalam dunia komputer, proses adalah hanya program yang sedang dieksekusi.

Memulakan Proses

Memulakan proses dalam Unix/Linux adalah mudah seperti kue! Anda dapat melakukannya dalam dua cara utama:

  1. Proses Di Depan: Ketik perintah dan tekan Enter.
  2. Proses Di Belakang: Tambahkan tanda ampersand (&) di akhir perintah.

Mari kita lihat beberapa contoh:

# Proses di depan
$ ls -l

# Proses di belakang
$ long_running_command &

Dalam contoh pertama, ls -l berjalan di depan, menunjukkan kandungan direktori. Dalam yang kedua, perintah berjalan di belakang, membolehkan Anda terus menggunakan terminal.

Menampilkan Proses Yang Berjalan

Sekarang, apa jika Anda ingin melihat semua tukang masak (proses) yang bekerja di dapur Anda (sistem)? Itulah di mana perintah ps berguna!

$ ps aux

Perintah ini akan menunjukkan semua proses yang berjalan. Itu seperti melihat setiap sudut dapur Anda!

Berikut adalah penjelasan apa yang Anda akan lihat:

Kolom Deskripsi
USER Pemilik proses
PID ID Proses
%CPU Penggunaan CPU
%MEM Penggunaan Memori
VSZ Saiz Memori Virtual
RSS Saiz Set Penduduk
TTY Jenis Terminal
STAT Status Proses
START Waktu Mulai
TIME Waktu CPU
COMMAND Nama Perintah

Menghentikan Proses

kadang-kadang, proses mungkin menjadi liar (seperti tukang masak yang membakar segala sesuatu). Dalam kes seperti itu, Anda perlu menghentikannya. Berikut cara:

$ kill PID

Ganti PID dengan ID Proses yang Anda ingin menghentikan. Jika Anda merasa khusyuk, Anda dapat menggunakan:

$ kill -9 PID

Ini seperti memecat tukang masak secara segera - itu adalah penghentian yang keras!

Proses Parent dan Child

Dalam Unix/Linux, proses memiliki silsilah keluarga. Ketika proses mencipta proses lain, ia menjadi induk, dan proses baru adalah anaknya. Itu seperti chef (proses induk) memberikan tugas kepada sous chef (proses anak).

Anda dapat melihat hubungan ini menggunakan:

$ pstree

Perintah ini menunjukkan silsilah proses, menggambarkan hubungan induk-anak.

Proses Zombie dan Orphan

Sekarang, mari bicarakan tentang beberapa jenis proses khusus:

  1. Proses Zombie: Proses anak yang telah selesai dieksekusi tetapi masih ada entri di jadual proses. Itu seperti tukang masak yang menyelesaikan hidangan tetapi belum logout.

  2. Proses Orphan: Proses yang induknya telah selesai atau terhenti, tetapi ia masih berjalan. Bayangkan sous chef yang masih bekerja setelah chef utama pulang.

Untuk melihat jika Anda memiliki proses zombie, Anda dapat menggunakan:

$ ps aux | grep Z

Proses Daemon

Proses daemon adalah seperti staf dapur yang bekerja 24/7. Mereka berjalan di belakang dan menyediakan pelbagai perkhidmatan. Sebagai contoh, daemon sshd mendengar sambungan SSH yang masuk.

Untuk senarai semua proses daemon, Anda dapat menggunakan:

$ ps -eo 'tty,pid,comm' | grep ^?

Perintah top

Perintah top adalah monitor dapur sepanjang masa Anda. Ia menyediakan pandangan real-time yang dinamik terhadap sistem yang berjalan. Berikut cara penggunaannya:

$ top

Anda akan melihat jadual yang mirip dengan ps, tetapi ia akan dikemaskini secara real-time. Itu seperti mempunyai siaran langsung dapur Anda!

Job ID versus Process ID

Akhirnya, mari klarifikasi perbezaan antara Job ID dan Process ID:

  • Process ID (PID): Penunjuk unik bagi setiap proses dalam sistem.
  • Job ID: Nombor yang diberikan oleh shell kepada proses yang dimulakan di belakang.

Anda dapat melihat job IDs menggunakan:

$ jobs

Dan Anda dapat membawa proses belakang ke depan menggunakan:

$ fg %job_id

Ingat, Job IDs adalah khusus kepada sesi shell semasa, sedangkan PIDs adalah seluruh sistem.

Dan itu lah, teman-teman! Kita telah meliputi asas pengurusan proses Unix/Linux. Ingat, latihan membuat sempurna, jadi jangan sungkan untuk mencuba perintah ini di sistem Anda. Hanya berhati-hati dengan perintah kill - kita tidak mau ada penghentian yang tak disengaja di dapur!

Sementara kita mengakhiri, saya diingatkan tentang insiden lucu dari hari-hari awal pengajaran saya. Saya pernah secara tidak sengaja membunuh proses editor teks saya saat menjelaskan perintah kill, kehilangan sejam kerja yang belum disimpan. Biar itu lesun - selalu simpan kerja Anda sebelum bermain dengan proses!

Terus buat proses Anda, dan selamat komputing!

Credits: Image by storyset