Kaip nužudyti procesą pagal pavadinimą „Linux“.

Priverstinai nutraukti netinkamai veikiančius procesus naudodami šias Linux komandas

Paprasčiausiais žodžiais paaiškinti „Proceso“ reikšmę yra tai, kad tai yra bet kurios jūsų sistemoje veikiančios programos ar programos pavyzdys. Gali būti, kad vienu metu veikiate keliomis programomis, pvz., naršote, klausotės terminale veikiančios muzikos ir pan. Su šiomis programomis susijusių foninių procesų, kuriuos vykdo vartotojas.

Kiekviena jūsų sistemoje veikianti programa ar programa sukuria kelis procesus, susietus su jūsų viena programa. Kartais tai gali būti problema ir vienintelė jūsų galimybė yra atsikratyti šių procesų.

Proceso „nužudymas“ yra viena iš naudingų „Linux“ galimybių sustabdyti vykstančius procesus, nesvarbu, ar tai būtų pirmame plane, ar fone. Šiame straipsnyje apžvelgsime tokias komandas kaip nužudyti, pkill ir killall priverstinai išjungti bet kurį sistemos procesą.

Kodėl nužudyti procesą?

Prieš tęsiant šią mokymo programą, svarbu suprasti proceso žudymo sąvoką. Nužudymas gali atrodyti labai žiaurus būdas išreikšti sąvoką, tačiau perkeltine prasme tai reiškia priverstinį proceso nutraukimą.

Dabar kodėl nutraukti ar nutraukti vykstantį procesą? Kai fone veikia keli procesai, visi arba keli iš jų gali sugesti ir dėl to jūsų sistema gali veikti netinkamai. Tai atitolina jūsų vykdomas užduotis, nes gedimo procesas gali kurį laiką užšaldyti jūsų sistemą.

Kartais atrodo, kad visų netinkamai veikiančių procesų nutraukimas yra vienintelė galimybė atkurti normalią sistemos veiklą. Linux leidžia užmušti procesą naudojant pid arba proceso pavadinimą.

Naudojant pgrep komandą

Dauguma Linux vartotojų yra susipažinę su grep komandą. The pgrep komanda gali būti naudojama panašiose eilutėse grep.

pgrep komanda, kai naudojama, rodo pid vykdomo proceso, kaip nurodyta komandoje. Ši komanda bus labai naudinga naudojant pkill komandą.

Bendroji sintaksė:

pgrep [parinktys] [raktas]

Svarbios parinktys, galimos su pgrep komandą

Parinktisapibūdinimas
-usąrašo proceso ID, priklausantis konkrečiam vartotojui
-csuskaičiuoti atitikimo procesų skaičių
-Ašišvardyti tik procesų pavadinimus
-anurodykite visą proceso pavadinimo kelią

Leiskite mums parodyti naudojimą pgrep komanda naudojant pavyzdį.

pgrep -u gaurav gnome

Čia mes norime pamatyti pids proceso gnome, kuris priklauso vartotojui „gaurav“. Parinktis -u leidžia išvardyti pids konkrečiam vartotojui priklausančių procesų. Šiuo atveju vartotojas gaurav.

Išvestis:

gaurav@ubuntu:~$ pgrep -u gaurav gnome 1752 1755 1909 1922 2021 2576 4279 gaurav@ubuntu:~$

Kai tęsiame šią mokymo programą, pgrep komanda padės mums patvirtinti, ar procesas buvo sustabdytas, ar vis dar vykdomas.

Dabar pereikime prie pkill komandą ir jos vykdymą.

Naudojant pkill komandą

Galite naudoti pkill komandą „Linux“, kad nužudytumėte procesą naudodami proceso pavadinimą. Net jei jūs nežinote pid kai kurių procesų, net ir tada galite nužudyti tą konkretų procesą naudodami pkill komandą.

Naudojant procesus galima nurodyti pilną arba dalinį pavadinimą pkill komandą. Net jei įvesite dalinį proceso pavadinimą, pkill komanda suderins visus vykdomus procesus su atitinkamu pavadinimu, kurį įvedėte komandoje.

Sintaksė:

pkill [parinktys] [process_name_pattern] 

Pavyzdys:

Leiskite mums parodyti procesus, šiuo metu vykdomus naudojant viršuje komandą. Taip pat galite naudoti ps komandą procesams išvardyti.

viršuje
viršuje – 14:24:02 aukštyn 3:12, 1 vartotojas, apkrovos vidurkis: 0,29, 0,48, 0,58 Užduotys: iš viso 221, 1 bėgimas, 172 miegas, 0 sustojęs, 1 zombis % procesoriaus (procesorių): 5,6 as, 1,0 sy , 0,0 ni, 92,9 id, 0,4 wa, 0,0 hi, 0,1 si, 0,0 st KiB atmintis: iš viso 3928240, 610456 nemokami, 2233152 panaudoti, 1084632 buff / talpyklos KiB keitimas: iš viso 3 7 8 48, 48 1187268 Laisvu Mem PID VARTOTOJO PR NI virt AEI SHR S% procesoriaus% MEM laikas + KOMANDA 4077 gaurav 20 0 3.312.128 673.480 118.360 S 19,6 17,1 15: 13.23 Web Content 3712 gaurav 20 0 3.953.008 453.544 116.476 S 4.0 11.5 9: 28.39 MainThread 2010 gaurav 20 0 4084232 111096 45024 S 1,7 2,8 3: 14.85 gnome-apvalkalas 1197 šaknies 20 0 1039612 33704 22988 S 1,0 0,9 3: 04,42 xorg 1426 couchdb 20 0 3772396 16908 2520 S 0,7 0,4 1: 50,83 beam.smp 3288 gaurav 20 0 722480 25048 18272 S 0,7 0,6 0: 06,84 gnome-terminal- 3915 gaurav 20 0 2804900 231524 111228 S 0,7 5,9 0: 54.42 interneto turinio 4146 gaurav 20 0 3017924 245304 120604 S 0,7 6,2 2: 01.21 interneto turinio 4417 gaurav 20 0 2964208 234396 119160 S 0,7 6,0 0 :59,90 Žiniatinklio turinys 4860 gaurav 20 0 3066800 372920 132544 S 0,7 9,5 0:48,20 Žiniatinklio turinys 16007 gaurav 20 0 41944 3780 3116 R .08: top. 

Naudojant viršuje komanda jūsų terminale parodys kelis procesus. Pabandykime parodyti procesą konkrečiu pavadinimu. Mes naudosime grep komanda, kad būtų rodomas procesas, kurio pavadinimas atitinka eilutę „mongo“.

viršuje | grep -i mongo

Pastaba: Čia aš panaudojau parinktį -i, kad paieškose nebūtų skiriamos didžiosios ir mažosios raidės.

Šios komandos išvestyje bus rodomi procesai, atitinkantys pavadinimą „mongo“

 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1: 03,22 mongod 1158 mongodb 20 0 288564 4848 1320 S 1,0 0,1 1: 03,25 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1: 03,27 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1: 03,29 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1: 03,31 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1: 03,33 mongod 1158 mongodb 20 0 288564 4848 1320 S 1,0 0,1 1: 03,36 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1: 03,38 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1: 03.40 mongod 1158 mongodb 20 0 288564 4848 1320 S 1,0 0,1 1: 03,43 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1: 03,45 mongod 1158 mongodb 20 0 288564 4848 1320 S 1,0 0,1 1: 03,48 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,3 0,1 1: 03,49 mongod 1158 mongodb 20 0 288564 4848 1320 S 1,0 0,1 1: 03,52 mongod 1158 mongodb 20 0 288564 4848 1320 S 0,7 0,1 1:03,54 mongod 1158 mongodb 20 0 288564 4848 1320 S 1,0 0,1 1:03,57 mongod

Dabar mes naudosime pkill komanda nužudyti procesą, pavadintą „mongo“.

pkill mongo

Ši komanda dabar nužudys proceso mongo. Galime patvirtinti, ar procesas buvo priverstas baigti, naudodami pgrep komanda, kuri rodo pid vykdomo proceso pagal vartotojo nurodytus kriterijus.

gaurav@ubuntu:~$ pgrep mongo gaurav@ubuntu:~$

Ši komanda nepateiks jokios reikšmės. Tai patvirtina, kad procesas „mongo“ dabar nužudomas naudojant pkill komandą.

Dažnai naudojamos parinktys pkill komandą

Naudodami pkill komandą, mums reikės minėtų parinkčių, kad galėtume tinkamai ir be pastangų naudoti pkill komandą.

Galimybėsapibūdinimas
-fatitinka visus argumentus, įskaitant tarpus, kabutes, specialiuosius simbolius
-uinformuoti pkill procesą, kad jis atitiktų nurodyto vartotojo vykdomą procesą
-1iš naujo įkelia procesą
-9žudo procesą
-15grakščiai nutraukia procesą

Pažiūrėkime dar vieną pavyzdį pkill komanda naudojant -f variantas.

Šiuo metu terminale vykdomos dvi komandos, kaip parodyta toliau.

ping bbc.com ping youtube.com

Abu procesus inicijuoja ping komandą. Tarkime, kad norime nutraukti tik vieną procesą „ping youtube.com“, tada turime naudoti -f variantas su pkill komanda, kuri užmuša procesą konkrečiu pavadinimu, įskaitant tarpus ir kabutes iš proceso pavadinimo.

komandą:

gaurav@ubuntu:~$ pkill -f "ping youtube.com" gaurav@ubuntu:~$ 

Rezultatas:

gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56 (84) baitai duomenų. 64 baitai iš bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=1 ttl=117 time=30.9 ms 64 baitai iš bom12s08-in-f14.1e100.25.262.2006. =117 laikas = 121 ms 64 baitai iš bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq = 206 ttl = 117 laikas = 86,5 ms 64 baitai iš bom12s08-in-f14.1.6.627 ): icmp_seq=207 ttl=117 laikas=105 ms Nutraukta gaurav@ubuntu:~$ 

Čia „ping youtube.com“ procesas dabar yra nužudytas ir „ping bbc.com“ vis dar veikia terminale.

Tuo atveju, jei būtume naudoję pkill ping komandą, tai būtų nužudę abu ping procesai, o tai nepageidautina.

Signalai naudojami su pkill komandą

pkill priverčia procesą baigti, siųsdamas tam konkretų signalą. Yra trys galimi signalai, kurie pkill komanda gali siųsti procesui, priklausomai nuo komandos, kurią duoda vartotojas.

Toliau pateikiamas galimų signalų sąrašas.

SignalasSpecifikacija
1(HUP)iš naujo įkelia nurodytą procesą
9 (NUŽUDYTI)žudo nurodytą procesą
15 (TERMINAS)švelniai sustabdo arba nutraukia nurodytą procesą

Šioje mokymo programoje mes labai pasikliausime NUŽUDYTI signalas. Peržiūrėkime keletą pavyzdžių, kad tai geriau suprastume.

Naudojant pgrep komandą gauti pid atitinkantis pavadinimą apache.

gaurav@ubuntu:~$ pgrep apache 1218 10402 10403 gaurav@ubuntu:~$
pkill -Nužudyti apache

ARBA taip pat galite naudoti komandą su skaičiais (pvz., 1, 9, 15)

pkill -9 apache

Abi aukščiau pateiktos komandos nužudys procesą apache. Patvirtinant su pgrep komandą dar kartą.

gaurav@ubuntu:~$ pgrep apache gaurav@ubuntu:~$

Kaip ir pgrep komanda nepateikia jokios išvesties, įrodo, kad proceso apache buvo nužudytas.

Išvada

Šioje pamokoje sužinojome apie pkill komandą ir kaip ji naudojama procesui nužudyti naudojant proceso pavadinimą. Taip pat sužinojome apie pgrep komanda, kuri naudojama norint gauti bet kurio konkretaus vartotojo vykdomo proceso ID. The pgrep komanda leidžia kryžmiškai patikrinti, ar procesas užmuštas.