Apa yang anda perlu tahu mengenai proses di Linux [Panduan Komprehensif]
- 3130
- 205
- Chris Little I
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 linuxPenciptaan 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 httpdCari ID Proses Linux
Untuk mencari ID proses dan ID proses induk shell semasa, jalankan:
$ echo $$ $ echo $ ppidCari 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:
# CloudCmdMulakan 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 & # PekerjaanMulakan 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 %1Pekerjaan 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 | kepalaSenaraikan 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:
# atasSenaraikan 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:
# melirikPandangan - 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:
- 20 Alat baris arahan untuk memantau prestasi linux
- 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 glancesKawalan proses Linux
Untuk mengetahui cara menggunakan arahan ini secara mendalam, untuk membunuh/menamatkan proses aktif di Linux, buka pautan di bawah:
- Panduan untuk Membunuh, Pkill dan Killall Perintah untuk Menamatkan Proses Linux
- 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 -LSenaraikan 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:
$ atasSenaraikan 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.
- Pengurusan Proses Linux: Boot, Shutdown, dan segala -galanya di antara
- Cari 15 proses teratas dengan penggunaan memori dengan 'atas' dalam mod batch
- Cari proses berjalan atas dengan memori tertinggi dan penggunaan CPU di Linux
- 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.
- « Cara Melakukan Operasi Sendiri dan Mengimbangi Semula dalam Sistem Fail Gluster-Bahagian 2
- Cara Mengaktifkan Perkongsian Desktop di Ubuntu dan Linux Mint »