Apa yang anda perlu tahu mengenai proses di Linux [Panduan Komprehensif]

Apa yang anda perlu tahu mengenai proses di Linux [Panduan Komprehensif]

Dalam artikel ini, kami akan melalui pemahaman asas mengenai proses dan melihat secara ringkas bagaimana menguruskan proses di Linux menggunakan arahan tertentu.

A proses merujuk kepada program dalam pelaksanaan; Ini adalah contoh program. Ia terdiri daripada arahan program, data yang dibaca dari fail, program lain atau input dari pengguna sistem.

Jenis proses

Terdapat dua jenis proses di Linux:

  • Proses latar depan (juga disebut sebagai proses interaktif) - ini diasaskan dan dikawal melalui sesi terminal. Dalam erti kata lain, mesti ada pengguna yang disambungkan ke sistem untuk memulakan proses tersebut; mereka belum bermula secara automatik sebagai sebahagian daripada fungsi/perkhidmatan sistem.
  • Proses latar belakang (juga dirujuk sebagai proses bukan interaktif/automatik) - adalah proses yang tidak disambungkan ke terminal; Mereka tidak mengharapkan sebarang input pengguna.

Apa itu Daemons

Ini adalah jenis proses latar belakang khas yang bermula pada permulaan sistem dan terus berjalan selama -lamanya sebagai perkhidmatan; Mereka tidak mati. Mereka dimulakan sebagai tugas sistem (dijalankan sebagai perkhidmatan), secara spontan. Walau bagaimanapun, mereka boleh dikawal oleh pengguna melalui proses init.

Keadaan proses linux

Penciptaan proses di Linux

Proses baru biasanya dibuat apabila proses yang ada membuat salinan yang tepat dalam ingatannya sendiri. Proses kanak -kanak akan mempunyai persekitaran yang sama dengan ibu bapanya, tetapi hanya nombor ID proses yang berbeza.

Terdapat dua cara konvensional yang digunakan untuk mewujudkan proses baru di Linux:

  • Menggunakan fungsi sistem () - Kaedah ini agak mudah, bagaimanapun, ia tidak cekap dan mempunyai risiko keselamatan tertentu.
  • Menggunakan fungsi garpu () dan eksekutif () - Teknik ini sedikit maju tetapi menawarkan kelonggaran, kelajuan, bersama dengan keselamatan yang lebih besar.

Bagaimana linux mengenal pasti proses?

Kerana Linux adalah sistem berbilang pengguna, yang bermaksud pengguna yang berbeza dapat menjalankan pelbagai program pada sistem, setiap contoh program harus dikenal pasti secara unik oleh kernel.

Dan program dikenal pasti oleh ID prosesnya (Pid) serta id proses induknya (Ppid), oleh itu proses dapat dikategorikan ke dalam:

  • Proses induk - ini adalah proses yang membuat proses lain semasa jangka masa.
  • Proses kanak -kanak - Proses ini dibuat oleh proses lain semasa jangka masa.

Proses init

Di dalamnya Proses adalah ibu (ibu bapa) dari semua proses pada sistem, ia adalah program pertama yang dilaksanakan apabila sistem Linux boots; ia menguruskan semua proses lain dalam sistem. Ia dimulakan oleh kernel itu sendiri, jadi pada dasarnya ia tidak mempunyai proses induk.

Proses init selalu mempunyai id proses 1. Ia berfungsi sebagai ibu bapa angkat untuk semua proses yatim piatu.

Anda boleh menggunakan perintah pidof Untuk mencari ID proses:

# pidof systemd # pidof top # pidof httpd 
Cari ID Proses Linux

Untuk mencari ID proses dan ID proses induk shell semasa, jalankan:

$ echo $$ $ echo $ ppid 
Cari ID Proses Ibu Bapa Linux

Memulakan proses di Linux

Sebaik sahaja anda menjalankan arahan atau program (contohnya CloudCMD - CloudCommander), ia akan memulakan proses dalam sistem. Anda boleh memulakan proses latar depan (interaktif) seperti berikut, ia akan disambungkan ke terminal dan pengguna boleh menghantarnya:

# CloudCmd 
Mulakan proses interaktif Linux

Pekerjaan latar belakang Linux

Untuk memulakan proses di latar belakang (tidak interaktif), gunakan & simbol, di sini, proses tidak membaca input dari pengguna sehingga ia dipindahkan ke latar depan.

# CloudCMD & # Pekerjaan 
Mulakan proses Linux di latar belakang

Anda juga boleh menghantar proses ke latar belakang dengan menggantungnya menggunakannya [Ctrl + z], Ini akan menghantar Sigstop isyarat kepada proses, dengan itu menghentikan operasinya; ia menjadi terbiar:

# TAR -CF BACKUP.tar /sandaran /* #press ctrl+z # pekerjaan 

Untuk terus menjalankan perintah yang digantung di atas di latar belakang, gunakan BG Perintah:

# bg 

Untuk menghantar proses latar ke latar depan, gunakan FG perintah bersama dengan id pekerjaan seperti itu:

# Pekerjaan # FG %1 
Pekerjaan proses latar belakang linux

Anda juga mungkin suka: Cara Memulakan Perintah Linux Di Latar Belakang dan Melepaskan Proses di Terminal

Negeri proses di linux

Semasa pelaksanaan, proses berubah dari satu negeri ke negara yang lain bergantung pada persekitaran/keadaannya. Di Linux, proses mempunyai keadaan yang mungkin berikut:

  • Berlari - di sini sama ada berjalan (ia adalah proses semasa dalam sistem) atau sudah bersedia untuk dijalankan (ia menunggu untuk ditugaskan ke salah satu CPU).
  • Menunggu - Di negeri ini, proses sedang menunggu acara berlaku atau untuk sumber sistem. Di samping itu, kernel juga membezakan antara dua jenis proses menunggu; Proses menunggu yang boleh diganggu - boleh terganggu oleh isyarat dan proses menunggu yang tidak terganggu - menunggu secara langsung pada keadaan perkakasan dan tidak dapat terganggu oleh sebarang peristiwa/isyarat.
  • Berhenti - Di negeri ini, proses telah dihentikan, biasanya dengan menerima isyarat. Contohnya, proses yang sedang debug.
  • Zombie - Di sini, proses sudah mati, ia telah dihentikan tetapi masih ada entri dalam jadual proses.

Cara Melihat Proses Aktif di Linux

Terdapat beberapa alat Linux untuk melihat/menyenaraikan proses berjalan pada sistem, dua tradisional dan terkenal adalah PS dan arahan teratas:

1. Perintah PS

Ia memaparkan maklumat mengenai pemilihan proses aktif pada sistem seperti yang ditunjukkan di bawah:

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

2. Atas - Alat Pemantauan Sistem

Atas adalah alat yang berkuasa yang menawarkan pandangan masa nyata dinamik sistem berjalan seperti yang ditunjukkan dalam tangkapan skrin di bawah:

# atas 
Senaraikan proses berjalan linux

Baca ini untuk lebih banyak penggunaan atas: 12 Contoh Perintah Teratas di Linux

3. Pandangan - Alat Pemantauan Sistem

melirik adalah alat pemantauan sistem yang agak baru dengan ciri canggih:

# melirik 
Pandangan - Pemantauan Proses Linux

Untuk panduan penggunaan yang komprehensif, baca melalui: GLANCES - Alat Pemantauan Sistem Masa Nyata Lanjutan untuk Linux

Terdapat beberapa alat pemantauan sistem Linux yang berguna yang boleh anda gunakan untuk menyenaraikan proses aktif, buka pautan di bawah untuk membaca lebih lanjut mengenai mereka:

  1. 20 Alat baris arahan untuk memantau prestasi linux
  2. 13 alat pemantauan Linux yang lebih berguna

Cara mengawal proses di linux

Linux juga mempunyai beberapa arahan untuk mengawal proses seperti Kill, Pkill, Pgrep dan Killall, di bawah adalah beberapa contoh asas cara menggunakannya:

$ pgrep -u tecmint top $ bunuh 2308 $ pgrep -u tecmint top $ pgrep -u tecmint glances $ pkill glances $ pgrep -u tecmint glances 
Kawalan proses Linux

Untuk mengetahui cara menggunakan arahan ini secara mendalam, untuk membunuh/menamatkan proses aktif di Linux, buka pautan di bawah:

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

Perhatikan bahawa anda boleh menggunakannya untuk membunuh aplikasi yang tidak bertindak balas di Linux apabila sistem anda membeku.

Menghantar isyarat ke proses

Cara asas mengawal proses di Linux adalah dengan menghantar isyarat kepada mereka. Terdapat banyak isyarat yang boleh anda hantar ke proses, untuk melihat semua isyarat dijalankan:

$ KILL -L 
Senaraikan semua isyarat Linux

Untuk menghantar isyarat kepada proses, gunakan arahan membunuh, pkill atau pgrep yang kami sebutkan tadi. Tetapi program hanya boleh memberi respons kepada isyarat jika mereka diprogramkan untuk mengenali isyarat tersebut.

Dan kebanyakan isyarat adalah untuk kegunaan dalaman oleh sistem, atau untuk pengaturcara ketika mereka menulis kod. Berikut adalah isyarat yang berguna kepada pengguna sistem:

  • Sighup 1 - dihantar ke proses apabila terminal kawalannya ditutup.
  • Sigint 2 - dihantar ke proses melalui terminal kawalannya apabila pengguna mengganggu proses dengan menekan [Ctrl+C].
  • Sigquit 3 - dihantar ke proses jika pengguna menghantar isyarat berhenti [Ctrl+D].
  • Sigkill 9 - Isyarat ini segera menamatkan (membunuh) proses dan prosesnya tidak akan melakukan sebarang operasi pembersihan.
  • Sigterm 15 - Ini isyarat penamatan program (membunuh akan menghantar ini secara lalai).
  • Sigtstp 20 - dihantar ke proses oleh terminal mengawalnya untuk memintanya berhenti (berhenti terminal); dimulakan oleh pengguna menekan [Ctrl+z].

Berikut adalah Contoh Perintah Membunuh untuk Membunuh Aplikasi Firefox menggunakan PID apabila ia membeku:

$ pidof firefox $ Kill 9 2687 atau $ Kill -Kill 2687 atau $ Kill -Sigkill 2687 

Untuk membunuh permohonan menggunakan namanya, gunakan Pkill atau Killall seperti SO:

$ pkill firefox $ killall firefox 

Menukar Keutamaan Proses Linux

Pada sistem Linux, semua proses aktif mempunyai keutamaan dan nilai yang baik tertentu. Proses dengan keutamaan yang lebih tinggi biasanya akan mendapat lebih banyak masa CPU daripada proses keutamaan yang lebih rendah.

Walau bagaimanapun, pengguna sistem dengan keistimewaan root boleh mempengaruhi ini dengan Bagus dan Renice Perintah.

Dari output perintah atas, Ni menunjukkan proses yang bagus:

$ atas 
Senaraikan proses berjalan linux

Menggunakan Bagus Perintah untuk menetapkan nilai yang bagus untuk proses. Perlu diingat bahawa pengguna normal dapat mengaitkan nilai yang bagus dari sifar hingga 20 hingga proses yang mereka miliki.
Hanya pengguna root yang boleh menggunakan nilai yang baik negatif.

Ke Renice keutamaan proses, gunakan Renice Perintah seperti berikut:

$ Renice +8 2687 $ Renice +8 2103 

Semak beberapa artikel berguna kami mengenai cara mengurus dan mengawal proses Linux.

  1. Pengurusan Proses Linux: Boot, Shutdown, dan segala -galanya di antara
  2. Cari 15 proses teratas dengan penggunaan memori dengan 'atas' dalam mod batch
  3. Cari proses berjalan atas dengan memori tertinggi dan penggunaan CPU di Linux
  4. Cara Mencari Nama Proses Menggunakan Nombor PID di Linux

Itu sahaja buat masa ini! Adakah anda mempunyai sebarang pertanyaan atau idea tambahan, berkongsi dengan kami melalui borang maklum balas di bawah.