Kako ubiti proces po imenu u Linuxu

Prisilno zatvorite procese koji se loše ponašaju pomoću ovih Linux naredbi

Najjednostavnijim riječima objasniti značenje 'procesa' jest da je to pokrenuta instanca bilo koje aplikacije ili programa na vašem sustavu. Možda pokrećete više aplikacija istovremeno, kao što je pregledavanje, slušanje glazbe koja radi na vašem terminalu, itd. Postoji mnogo pozadinskih procesa povezanih s tim aplikacijama koje pokreće korisnik.

Svaka aplikacija ili program koji se izvodi na vašem sustavu stvara više procesa povezanih s vašom pojedinačnom aplikacijom. Ponekad to može biti problem i rješavanje ovih procesa jedina je opcija koju imate.

'Ubijanje' procesa jedna je korisna opcija koja vam Linux nudi za zaustavljanje tekućih procesa, bilo da je to proces u prvom planu ili proces u pozadini. U ovom članku ćemo pregledati naredbe poput ubiti, pkill i ubiti za prisilno zatvaranje bilo kojeg procesa na sustavu.

Zašto ubiti proces?

Razumijevanje koncepta ubijanja procesa važno je prije nego što krenete naprijed u ovom vodiču. Ubijanje se može činiti vrlo brutalnim načinom izražavanja koncepta, ali ono što figurativno znači je nasilno prekinuti proces.

Zašto prekinuti ili prekinuti proces koji je u tijeku? Kada se u pozadini izvodi više procesa, svi ili nekoliko njih mogu se pokvariti i uzrokovati loše ponašanje vašeg sustava. To odgađa vaše tekuće zadatke jer proces neispravnosti može na neko vrijeme zamrznuti vaš sustav.

Ponekad se čini da je napuštanje svih procesa koji se loše ponašaju jedina opcija za vraćanje normalnog stanja na vašem sustavu. Linux vam omogućuje da ubijete proces pomoću pid ili naziv procesa.

Koristiti pgrep naredba

Većina korisnika Linuxa upoznata je s grep naredba. The pgrep naredba se može koristiti na sličnim linijama grep.

pgrep naredba kada se koristi, prikazuje pid tekućeg procesa kako je navedeno u naredbi. Ova će se naredba pokazati vrlo korisnom tijekom korištenja pkill naredba.

Opća sintaksa:

pgrep [opcije] [uzorak]

Važne opcije dostupne uz pgrep naredba

OpcijaOpis
-upopis ID procesa u vlasništvu određenog korisnika
-cizbrojati broj procesa podudaranja
-janavesti samo nazive procesa
-anavesti puni put naziva procesa

Pokažimo upotrebu pgrep naredbu koristeći primjer.

pgrep -u gaurav gnom

Evo, želimo vidjeti pids procesnog gnoma koji je u vlasništvu korisnika 'gaurav'. Opcija -u omogućuje vam da navedete pids procesa u vlasništvu određenog korisnika. U ovom slučaju korisnik gaurav.

Izlaz:

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

Dok idemo dalje s ovim vodičem, pgrep naredba će nam pomoći da potvrdimo je li proces prekinut ili još uvijek radi.

Prijeđimo sada na pkill naredbu i njeno izvršenje.

Korištenje pkill naredba

Možete koristiti pkill naredba u Linuxu za ubijanje procesa pomoću naziva procesa. Čak i ako ne znate pid nekog procesa, čak i tada možete ubiti taj određeni proces pomoću pkill naredba.

Procesi se mogu navesti punim ili djelomičnim imenom tijekom korištenja pkill naredba. Čak i ako unesete djelomični naziv procesa, pkill naredba će uskladiti sve pokrenute procese s odgovarajućim imenom koje ste unijeli u naredbu.

Sintaksa:

pkill [opcije][uzorak_naziv_procesa] 

Primjer:

Prikažimo procese koji se trenutno izvode pomoću vrh naredba. Također možete koristiti p.s naredba za popis procesa.

vrh
vrh - 14:24:02 gore 3:12, 1 korisnik, prosjek opterećenja: 0,29, 0,48, 0,58 Zadaci: ukupno 221, 1 trčanje, 172 spavanje, 0 zaustavljen, 1 zombi %Cpu(s): 5,6 us, 1,0 sy , 0,0 ni, 92,9 id, 0,4 wa, 0,0 hi, 0,1 si, 0,0 st KiB Mem : 3928240 ukupno, 610456 besplatno, 2233152 korišteno, 1084632 buff/cache KiB Swap7, 480 ukupno rabljeno: 078840 ukupno 1187268 služiti Mem PID USER PR NI Virt RES SHR S% CPU% MEM TIME + COMMAND 4077 Gaurav 20 0 3312128 673480 118360 S 19,6 17,1 15: 13,23 Web sadržaj 3712 Gaurav 20 0 3953008 453544 116476 S 4,0 11,5 9: 28.39 MainThread 2010 Gaurav 20 0 4084232 111096 45.024 M 1,7 2,8 3: 14.85 gnome ljuske 1197 korijen 20 0 1039612 33704 22988 1,0 0,9 S 3: 04,42 Xorg 1426 couchdb 20 0 3772396 16908 2520 0,7 M 0,4 1: 50.83 beam.smp 3288 20 0 Gaurav 722,48 tisuća 25.048 18272 S 0,7 0,6 0: 06,84 gnome-terminal- 3915 Gaurav 20 0 2804900 231524 111228 M 0,7 5,9 0: 54.42 Web content 4146 Gaurav 20 0 3017924 245304 120604 M 0,7 6,2 2: 01.21 Web content 4417 Gaurav 20 0 2964208 234396 119160 M 0,7 6,0 0 :59,90 Web sadržaj 4860 gaurav 20 0 3066800 372920 132544 S 0,7 9,5 0:48,20 Web sadržaj 16007 gaurav 20 0 41944 3780 3170 R 1. 

Korištenje vrh naredba će prikazati više procesa na vašem terminalu. Pokušajmo prikazati proces s određenim imenom. Koristit ćemo se grep naredba za prikaz procesa čije ime odgovara nizu 'mongo'.

vrh | grep -i mongo

Bilješka: Ovdje sam koristio opciju -i kako bih pretraživanje učinio neosjetljivim na velika i mala slova.

Izlaz ove naredbe prikazat će procese koji odgovaraju nazivu 'mongo'

 1158 mongodb 20 0 288564 4848 1320 M 0,7 0,1 1: 03,22 mongod 1158 mongodb 20 0 288564 4848 1320 M 1.0 0.1 1: 03,25 mongod 1158 mongodb 20 0 288564 4848 1320 M 0,7 0,1 1: 03,27 mongod 1158 mongodb 20 0 288.564 4848 1320 S 0,7 0,1 1: 03,29 mongod 1158 mongodb 20 0 288564 4848 1320 M 0,7 0,1 1: 03,31 mongod 1158 mongodb 20 0 288564 4848 1320 M 0,7 0,1 1: 03,33 mongod 1158 mongodb 20 0 288564 4848 1320 M 1.0 0.1 1: 03,36 mongod 1158 mongodb 20 0 288564 4848 1320 M 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 M 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 M 1.0 0.1 1: 03,48 mongod 1158 mongodb 20 0 288564 4848 1320 M 0.3 0.1 1: 03,49 mongod 1158 mongodb 20 0 288564 4848 1320 M 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

Sada ćemo koristiti pkill naredba za ubijanje procesa pod nazivom 'mongo'.

pkill mongo

Ova naredba će sada ubiti proces mongo. Možemo potvrditi je li proces bio prisiljen prekinuti pomoću pgrep naredba koja prikazuje pid tekućeg procesa prema kriterijima koje je odredio korisnik.

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

Ova naredba neće vratiti nikakvu vrijednost. To potvrđuje da je proces 'mongo' sada ubijen korištenjem pkill naredba.

Opcije koje se često koriste sa pkill naredba

Tijekom korištenja pkill naredba će nam trebati spomenute opcije za pravilno i bez napora korištenje pkill naredba.

MogućnostiOpis
-fpodudaranje s punim argumentima uključujući razmake, navodnike, posebne znakove
-uinformirati proces pkill da odgovara procesu koji pokreće navedeni korisnik
-1ponovno učitava proces
-9ubija proces
-15graciozno prekida proces

Pogledajmo još jedan primjer pkill naredba pomoću -f opcija.

Postoje dvije naredbe koje se trenutno izvode na terminalu kao što je prikazano u nastavku.

ping bbc.com ping youtube.com

Oba procesa pokreću ping naredba. Sada, pretpostavimo da želimo prekinuti samo jedan proces “ping youtube.com” tada moramo upotrijebiti -f opcija s pkill naredba koja ubija proces s određenim imenom uključujući razmake i navodnike iz naziva procesa.

Naredba:

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

Proizlaziti:

gaurav@ubuntu:~$ ping youtube.com PING youtube.com (142.250.67.206) 56(84) bajta podataka. 64 bajta iz bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=1 ttl=117 time=30,9 ms 64 bajta iz bom12s08-in-f14.1e100.net (1467.2mpse 0): 1467. =117 vrijeme=121 ms 64 bajta iz bom12s08-in-f14.1e100.net (142.250.67.206): icmp_seq=206 ttl=117 vrijeme=86,5 ms 64 bajta od bom12s08-in-f12.200 (142s08-in-f12.06.7.04. ): icmp_seq=207 ttl=117 vrijeme=105 ms Prekinuto gaurav@ubuntu:~$ 

Ovdje, “ping youtube.com" proces je sada prekinut i "ping bbc.com” još uvijek radi na terminalu.

U slučaju da smo koristili pkill ping zapovijed, to bi ubilo oboje ping procesa, što je nepoželjno.

Signali koji se koriste sa pkill naredba

pkill prisiljava proces na prekid slanjem određenog signala tom procesu. Postoje tri moguća signala koji pkill naredba može poslati procesu ovisno o naredbi koju korisnik daje.

Slijedi popis dostupnih signala.

SignalSpecifikacija
1(HUP)ponovno učitava navedeni proces
9 (UBITI)ubija navedeni proces
15 (TERMIN)nježno zaustavlja ili prekida navedeni proces

Za ovaj vodič uvelike ćemo se oslanjati na UBITI signal. Prođimo kroz nekoliko primjera kako bismo to bolje razumjeli.

Koristiti pgrep naredbu za dobivanje pid podudaranje s imenom apache.

gaurav@ubuntu:~$ pgrep apache 1218 10402 10403 gaurav@ubuntu:~$
pkill -KIll apache

ILI također možete koristiti naredbu s brojevima (npr. 1, 9, 15)

pkill -9 apache

Obje gore prikazane naredbe će ubiti proces apache. Potvrđujući s pgrep opet zapovijedati.

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

Kao što je pgrep naredba ne vraća izlaz, dokazuje da je procesni apache ubijen.

Zaključak

U ovom vodiču naučili smo o pkill naredbu i kako se ona koristi za ubijanje procesa koristeći izravno ime procesa. Saznali smo i o pgrep naredba koja se koristi za dohvaćanje ID-a procesa procesa koji pokreće bilo koji određeni korisnik. The pgrep naredba nam omogućuje unakrsnu provjeru je li proces prekinut.