Kako ubiti postupke pomoću Linuxa

Većinu vremena želite da program završi vlastitim sredstvima ili, ako je to grafička aplikacija, pomoću odgovarajuće opcije izbornika ili pomoću križa u kutu.

Svakako će se često programirati, u kojem slučaju će vam trebati metoda za ubijanje. Možda biste također željeli ubiti program koji se izvodi u pozadini da više ne trebate pokrenuti.

Ovaj vodič pruža metodu za ubijanje svih verzija iste aplikacije koje se pokreću na vašem sustavu.

Kako koristiti zapovjedništvo za ubojstvo

Zapovjedništvo killall ubija sve procese po imenu. To znači da ako imate tri verzije istog programa koji pokreće ubojstvo, zapovijed će ubiti sva tri.

Na primjer, otvorite mali program takvog preglednika slika. Sada otvorite drugu kopiju istog preglednika slika. Za moj primjer odabrala sam Xviewer koji je klon očiju Gnomea.

Sada otvorite terminal i upišite sljedeću naredbu:

killall

Na primjer, ubiti sve instance Xviewera upišite sljedeće:

killall xviewer

Oba slučaja programa koju ste odabrali ubiti će se sada zatvoriti.

Ubiti točan postupak

killall može proizvesti neobične rezultate. Pa ovdje je jedan od razloga zašto. Ako imate naziv naredbe dulji od 15 znakova, tada će vršna naredba raditi samo na prvih 15 znakova. Ako stoga imate dva programa koji dijele iste prvih 15 znakova, oba će programa biti otkazana iako ste samo htjeli ubiti jedan.

Kako biste se dobili oko toga možete odrediti sljedeću prekidač koji će ubiti samo datoteke koje odgovaraju točnom imenu.

ubojica-e

Zanemari slučaj kada ubijate programe

Da biste provjerili da li killall naredba ignorira slučaj naziva programa koji dajete koristite sljedeću naredbu:

killall -I
killall --ignore-slučaj

Ubiti sve programe u istoj skupini

Kada pokrenete naredbu poput sljedećeg, stvorit će dva procesa:

ps -ef | manje

Jedna naredba je za PS -ef dio koji navodi sve pokrenute procese na vašem sustavu, a izlaz je usmjeren na manje naredbe .

Oba programa pripadaju istoj grupi koja je bash.

Za ubijanje oba programa odjednom možete pokrenuti sljedeću naredbu:

killall -g

Na primjer, da ubijete sve naredbe koje se izvode u shell bash pokrenuti sljedeće:

killall -g bash

Usput navesti sve pokrenute grupe pokrenuti sljedeću naredbu:

ps-g

Potvrda prije ubijanja programa

Očigledno je da je vršna zapovijed prilično snažna naredba i ne želite slučajno ubiti pogrešne procese.

Pomoću sljedeće sklopke bit ćete upitani jeste li sigurni prije nego što svaki proces bude ubijen.

killall -i

Ubiti postupke koji su se izvodili za određeni iznos vremena

Zamislite da ste pokrenuli program i traje puno duže nego što ste se nadali.

Zapovijed možete ubiti na sljedeći način:

killall -o h4

H u gornjoj naredbi stoji satima.

Također možete navesti bilo što od sljedećeg:

Alternativno, ako želite ubiti naredbe koje su tek počele s radom, možete koristiti sljedeći prekidač:

ubojica-h4

Ovaj put će killall naredba ubiti sve programe koji traju manje od 4 sata.

Nemojte mi reći kada proces nije ubijen

Prema zadanim postavkama ako pokušate ubiti neki program koji se ne prikazuje, primit ćete sljedeću pogrešku:

naziv programa: nijedan proces nije pronađen

Ako ne želite biti obaviješteni ako postupak nije pronađen, upotrijebite sljedeću naredbu:

killall -q

Upotreba regularnih izraza

Umjesto da navedete naziv programa ili naredbe, možete odrediti regularni izraz tako da svi procesi koji odgovaraju regularnom izrazu zatvaraju vršna naredba.

Za upotrebu regularnog izraza upotrijebite sljedeću naredbu:

killall -r

Ubiti programe za određivanje korisnika

Ako želite ubiti program koji pokreće određeni korisnik, možete odrediti sljedeću naredbu:

killall -u

Ako želite ubiti sve procese za određenog korisnika, možete izostaviti naziv programa.

Pričekajte za killall Da biste završili

Po defaultu, killall će se vratiti ravno natrag na terminal kada ga pokrenete, ali možete silom prisiliti da čekaju da su svi navedeni procesi zatvoreni prije nego što se vraćate u terminalni prozor.

Da biste to učinili pokrenite sljedeću naredbu:

killall -w

Ako program nikada ne umre onda će i ubijati i dalje živjeti.

Signali signaliziraju signale

Prema zadanim postavkama, killall naredba šalje SIGTERM signal programima kako bi ih zatvorili i to je najčistiji način ubijanja programa.

Postoje, međutim, i drugi signali koje možete poslati koristeći command killall i možete ih popisati pomoću sljedeće naredbe:

killall -l

Popis će se vratiti ovako:

Taj popis je iznimno dug. Da biste pročitali o tome što ti signali znače, pokrenite sljedeću naredbu:

signal čovjeka 7

Općenito, trebali biste koristiti zadanu opciju SIGTERM, ali ako program odbije umrijeti, možete koristiti SIGKILL koji prisiljava program da se zatvori, iako na nepriličan način.

Ostali načini ubijanja programa

Postoji još 5 načina ubijanja Linux aplikacije kao što je istaknuto u povezanom vodiču.

Međutim, kako biste uštedjeli napor da kliknete vezu ovdje je odjeljak koji pokazuje koje su te naredbe zašto biste mogli koristiti te naredbe nad killallom.

Prva je naredba ubijanja. Naredba killall kao što ste vidjeli izvrsna je u ubijanju svih verzija istog programa. Naredba za ubijanje osmišljena je da ubije jedan proces u isto vrijeme i stoga je više usmjeren.

Za pokretanje naredbe za uništavanje morate znati ID procesa procesa koji želite ubiti. Za to možete koristiti naredbu ps .

Na primjer, da biste pronašli pokrenutu verziju Firefoxa, možete pokrenuti sljedeću naredbu:

ps -ef | grep firefox

Vidjet ćete liniju podataka s naredbom / usr / lib / firefox / firefox na kraju. Na početku retka vidjet ćete vaš korisnički ID i broj nakon što je korisnički ID procesni ID.

Pomoću ID-a procesa možete ubiti Firefox tako da pokrenete sljedeću naredbu:

ubiti -9

Drugi način za ubijanje programa je pomoću naredbe xkill. To se obično koristi za ubijanje pogrešnih grafičkih aplikacija.

Da biste ubiti neki program poput Firefoxa, otvorite terminal i pokrenite sljedeću naredbu:

Xkill

Kursor će se sada promijeniti u veliki bijeli križ. Držite pokazivač iznad prozora koji želite ubiti i kliknite lijevom tipkom miša. Program će odmah izaći.

Drugi način za ubijanje procesa je pomoću Linux top naredbe. Glavna naredba navodi sve pokrenute procese na vašem sustavu.

Sve što morate učiniti da ubijete proces je pritisnite tipku "k" i unesite ID procesa aplikacije koju želite ubiti.

Ranije u ovom odjeljku naredba za ubijanje i zahtijevala vam je pronalaženje procesa pomoću naredbe ps, a zatim ubiti postupak pomoću naredbe kill.

Ovo nije najjednostavnija opcija na bilo koji način.

Jedna stvar, naredba ps daje veliku količinu informacija koju ne trebate. Sve što ste htjeli bio je ID procesa. ID procesa možete dobiti jednostavnije pokretanjem sljedeće naredbe:

pgrep firefox

Rezultat gore navedene naredbe je jednostavno ID procesa Firefoxa. Sada možete pokrenuti naredbu ubiti kako slijedi:

ubiti

(Zamijenite sa stvarnim ID procesa koji je vraćen pgrepom).

Jednostavno je, međutim, jednostavnije dostaviti naziv programa na pkill kako slijedi:

pkill krijesnica

Konačno, možete koristiti grafički alat kao što je onaj isporučen s Ubuntu pod nazivom "System Monitor". Da biste pokrenuli "System Monitor", pritisnite tipku Super (tipka Windows na većini računala) i upišite "sysmon" u traku za pretraživanje. Kada se pojavi ikona monitora sustava, kliknite ga.

Monitor sustava prikazuje popis procesa. Da biste završili program na čist način, odaberite ga i pritisnite prekidnu tipku pri dnu zaslona (ili pritisnite CTRL i E). Ako to ne uspije, kliknite desnom tipkom miša i odaberite "Ubij" ili pritisnite CTRL i K na proces koji želite ubiti.