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
Opcija | Opis |
-u | popis ID procesa u vlasništvu određenog korisnika |
-c | izbrojati broj procesa podudaranja |
-ja | navesti samo nazive procesa |
-a | navesti 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ćnosti | Opis |
-f | podudaranje s punim argumentima uključujući razmake, navodnike, posebne znakove |
-u | informirati proces pkill da odgovara procesu koji pokreće navedeni korisnik |
-1 | ponovno učitava proces |
-9 | ubija proces |
-15 | graciozno 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.
Signal | Specifikacija |
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.