Yang perlu Anda ketahui tentang proses di Linux [panduan komprehensif]

Yang perlu Anda ketahui tentang proses di Linux [panduan komprehensif]

Dalam artikel ini, kami akan berjalan melalui pemahaman dasar tentang proses dan secara singkat melihat cara mengelola proses di Linux menggunakan perintah tertentu.

A proses mengacu pada program dalam eksekusi; Ini adalah contoh yang berjalan dari suatu program. Ini terdiri dari instruksi program, data yang dibaca dari file, program lain atau input dari pengguna sistem.

Jenis proses

Ada dua jenis proses secara fundamental di Linux:

  • Proses latar depan (juga disebut sebagai proses interaktif) - ini diinisialisasi dan dikendalikan 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 itu Daemon

Ini adalah jenis khusus proses latar belakang yang dimulai pada startup sistem dan terus berjalan selamanya sebagai layanan; Mereka tidak mati. Mereka dimulai sebagai tugas sistem (dijalankan sebagai layanan), secara spontan. Namun, mereka dapat dikendalikan oleh pengguna melalui proses init.

Status proses Linux

Pembuatan suatu proses di Linux

Proses baru biasanya dibuat ketika proses yang ada membuat salinan yang tepat dari dirinya sendiri dalam memori. Proses anak akan memiliki lingkungan yang sama dengan induknya, tetapi hanya nomor ID proses yang berbeda.

Ada dua cara konvensional yang digunakan untuk membuat proses baru di Linux:

  • Menggunakan fungsi sistem () - Metode ini relatif sederhana, namun, tidak efisien dan memiliki risiko keamanan tertentu secara signifikan.
  • Menggunakan fungsi fork () dan exec () - Teknik ini sedikit canggih tetapi menawarkan fleksibilitas yang lebih besar, kecepatan, bersama dengan keamanan.

Bagaimana Linux Mengidentifikasi Proses?

Karena Linux adalah sistem multi-pengguna, yang berarti pengguna yang berbeda dapat menjalankan berbagai program pada sistem, setiap instance yang berjalan dari suatu program harus diidentifikasi secara unik oleh kernel.

Dan sebuah program diidentifikasi oleh ID prosesnya (Pid) serta ID Proses Induknya (PPID), oleh karena itu proses selanjutnya dapat dikategorikan ke dalam:

  • Proses induk - Ini adalah proses yang membuat proses lain selama run-time.
  • Proses anak - Proses ini dibuat oleh proses lain selama run-time.

Proses init

Init Proses adalah ibu (orang tua) dari semua proses pada sistem, ini adalah program pertama yang dieksekusi ketika sistem Linux memicu; itu mengelola semua proses lain di sistem. Itu 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 PIDOF Command untuk menemukan ID suatu proses:

# PIDOF SYSTEMD # PIDOF TOP # PIDOF HTTPD 
Temukan ID Proses Linux

Untuk menemukan ID proses dan ID proses induk dari shell saat ini, jalankan:

$ echo $$ $ echo $ ppid 
Temukan ID Proses Induk Linux

Memulai proses di Linux

Setelah Anda menjalankan perintah atau program (misalnya CloudCMD - CloudCommander), itu akan memulai proses dalam sistem. Anda dapat memulai proses latar depan (interaktif) sebagai berikut, itu akan terhubung ke terminal dan pengguna dapat mengirim masukan:

# cloudcmd 
Mulai proses interaktif Linux

Pekerjaan latar belakang Linux

Untuk memulai proses di latar belakang (non-interaktif), gunakan & Simbol, di sini, prosesnya tidak membaca input dari pengguna sampai dipindahkan ke latar depan.

# CloudCMD & # Jobs 
Mulai proses Linux di latar belakang

Anda juga dapat mengirim proses ke latar belakang dengan menangguhkannya menggunakan [Ctrl + Z], Ini akan mengirim Sigstop sinyal ke proses, sehingga menghentikan operasinya; itu menjadi idle:

# TAR -CF Cadangan.tar /cadangan /* #press ctrl+z # Jobs 

Untuk terus menjalankan perintah di atas ditangguhkan di latar belakang, gunakan bg memerintah:

# BG 

Untuk mengirim proses latar belakang ke latar depan, gunakan FG Perintah bersama dengan ID pekerjaan seperti itu:

# Jobs # fg %1 
Pekerjaan proses latar belakang linux

Anda mungkin juga suka: Cara Memulai Perintah Linux di Latar Belakang dan Lepaskan proses di Terminal

Keadaan proses di Linux

Selama pelaksanaan, suatu proses berubah dari satu negara ke negara lain tergantung pada lingkungan/keadaannya. Di Linux, suatu proses memiliki keadaan berikut:

  • Berlari - Di sini berjalan (ini adalah proses saat ini dalam sistem) atau siap berjalan (menunggu untuk ditugaskan ke salah satu CPU).
  • Menunggu - Dalam keadaan ini, suatu proses menunggu suatu peristiwa terjadi atau untuk sumber daya sistem. Selain itu, kernel juga membedakan antara dua jenis proses menunggu; Proses tunggu yang terputus - dapat terganggu oleh sinyal dan proses menunggu yang tidak terputus - menunggu langsung pada kondisi perangkat keras dan tidak dapat terganggu oleh peristiwa/sinyal apa pun.
  • Berhenti - Dalam keadaan ini, suatu proses telah dihentikan, biasanya dengan menerima sinyal. Misalnya, proses yang sedang debug.
  • Zombie - Di sini, suatu proses sudah mati, telah dihentikan tetapi masih memiliki entri di tabel proses.

Cara melihat proses aktif di linux

Ada beberapa alat Linux untuk melihat/mencantumkan proses menjalankan pada sistem, dua tradisional dan terkenal adalah perintah PS dan teratas:

1. Perintah ps

Ini menampilkan informasi tentang pemilihan proses aktif pada sistem seperti yang ditunjukkan di bawah ini:

# ps # ps -e | kepala 
Daftar proses aktif Linux

2. Alat Pemantauan Top - Sistem

Top adalah alat yang ampuh yang menawarkan Anda tampilan real-time yang dinamis dari sistem yang berjalan seperti yang ditunjukkan pada tangkapan layar di bawah ini:

# atas 
Daftar proses berjalan Linux

Baca ini untuk lebih banyak contoh penggunaan teratas: 12 contoh perintah teratas di Linux

3. PLINT - Alat Pemantauan Sistem

pandang adalah alat pemantauan sistem yang relatif baru dengan fitur canggih:

# melirik 
PLINT - Pemantauan Proses Linux

Untuk Panduan Penggunaan Komprehensif, Baca: Lirik - Alat Pemantauan Sistem Waktu Nyata Tingkat Lanjut untuk Linux

Ada beberapa alat pemantauan sistem Linux lain yang dapat Anda gunakan untuk mendaftar proses aktif, buka tautan di bawah ini untuk membaca lebih lanjut tentang mereka:

  1. 20 Alat baris perintah untuk memantau kinerja Linux
  2. 13 Alat pemantauan Linux yang lebih berguna

Cara mengontrol proses di linux

Linux juga memiliki beberapa perintah untuk mengontrol proses seperti Kill, Pkill, Pgrep dan Killall, di bawah ini adalah beberapa contoh dasar tentang cara menggunakannya:

$ pgrep -u tecmint top $ kill 2308 $ pgrep -u tecmint top $ pgrep -u tecmint glances $ pkill glances $ pgrep -u tecmint melirik 
Kontrol proses Linux

Untuk mempelajari cara menggunakan perintah ini secara mendalam, untuk membunuh/menghentikan proses aktif di Linux, buka tautan di bawah ini:

  1. Panduan untuk Membunuh, Pkill dan Killall Perintah untuk Menghentikan Proses Linux
  2. Cara Menemukan dan Membunuh Proses Berlari di Linux

Perhatikan bahwa Anda dapat menggunakannya untuk membunuh aplikasi yang tidak responsif di Linux saat sistem Anda membeku.

Mengirim sinyal ke proses

Cara mendasar untuk mengendalikan proses di Linux adalah dengan mengirimkan sinyal kepada mereka. Ada beberapa sinyal yang dapat Anda kirim ke suatu proses, untuk melihat semua sinyal berjalan:

$ kill -l 
Sebutkan semua sinyal linux

Untuk mengirim sinyal ke suatu proses, gunakan perintah kill, pkill atau pGrep yang kami sebutkan sebelumnya. Tetapi program hanya dapat menanggapi sinyal jika diprogram untuk mengenali sinyal -sinyal tersebut.

Dan sebagian besar sinyal 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 saat terminal pengendali ditutup.
  • Sigint 2 - Dikirim ke suatu proses dengan terminal pengendali saat pengguna mengganggu proses dengan menekan [Ctrl+C].
  • Sigquit 3 - Dikirim ke suatu proses jika pengguna mengirimkan sinyal berhenti [Ctrl+D].
  • Sigkill 9 - Sinyal ini segera berakhir (membunuh) suatu proses dan prosesnya tidak akan melakukan operasi pembersihan apa pun.
  • Sigterm 15 - Sinyal terminasi program ini (Kill akan mengirimkan ini secara default).
  • SIGTSTP 20 - dikirim ke proses dengan terminal pengendali untuk memintanya untuk berhenti (terminal stop); diprakarsai oleh pengguna yang menekan [Ctrl+Z].

Berikut ini adalah Contoh Perintah Kill untuk membunuh aplikasi Firefox menggunakan PID -nya setelah membeku:

$ pidof firefox $ kill 9 2687 atau $ kill -kill 2687 atau $ kill -sigkill 2687 

Untuk membunuh aplikasi menggunakan namanya, gunakan pkill atau killall seperti itu:

$ pkill firefox $ killall firefox 

Mengubah Prioritas Proses Linux

Pada sistem Linux, semua proses aktif memiliki prioritas dan nilai bagus tertentu. Proses dengan prioritas yang lebih tinggi biasanya akan mendapatkan lebih banyak waktu CPU daripada proses prioritas yang lebih rendah.

Namun, pengguna sistem dengan hak istimewa root dapat mempengaruhi ini dengan Bagus Dan Renice perintah.

Dari output dari perintah atas, Ni menunjukkan nilai proses yang bagus:

$ top 
Daftar proses berjalan Linux

Menggunakan Bagus Perintah untuk menetapkan nilai yang bagus untuk suatu proses. Perlu diingat bahwa pengguna normal dapat menghubungkan nilai yang bagus dari nol hingga 20 dengan proses yang mereka miliki.
Hanya pengguna root yang dapat menggunakan nilai bagus negatif.

Ke Renice prioritas suatu proses, gunakan Renice Perintah sebagai berikut:

$ Renice +8 2687 $ Renice +8 2103 

Lihatlah beberapa artikel berguna kami tentang cara mengelola dan mengontrol proses Linux.

  1. Manajemen Proses Linux: boot, shutdown, dan semuanya di antaranya
  2. Temukan 15 proses teratas berdasarkan penggunaan memori dengan 'atas' dalam mode batch
  3. Temukan Proses Running Top dengan memori tertinggi dan penggunaan CPU di Linux
  4. Cara menemukan nama proses menggunakan nomor pid di linux

Itu saja untuk saat ini! Apakah Anda memiliki pertanyaan atau ide tambahan, bagikan dengan kami melalui formulir umpan balik di bawah ini.