logo

Kill ukaz

Kaj je ukaz kill?

Linux je napreden in odličen operacijski sistem; vendar ni popolno. Nekatere aplikacije se lahko začnejo obnašati neprevidno in postanejo neobčutljive ali začnejo porabljati več sistemskih virov.

Neobčutljivih aplikacij ni mogoče znova zagnati, ker dejanski postopek uporabe nikoli ne preneha popolnoma. Ena sama rešitev je ponovni zagon sistema ali ubijanje procesa aplikacije.

Obstajajo različni pripomočki, ki nam omogočajo prekinitev napačnih procesov skupaj z ubiti ukaz. Ta ukaz se najpogosteje uporablja v Linuxu.

notri Linux , lahko ukaz kill (ki se nahaja znotraj /bin/kill) definiramo kot vgrajeni ukaz.

pripravite se na testni mockito

Uporablja se za ročno prekinitev procesov. Obnašanje ukaza kill se nekoliko razlikuje med lupinami in ukazom /bin/kill samostojna izvršljiva datoteka.

Uporabimo lahko ukaz type za prikaz vsake lokacije v našem sistemu, ki vsebuje kill:

 $ type -a kill 

Kill ukaz

Ukaz kill prenese signal proti procesu, v katerem se proces nadalje prekine. Če uporabnik ne opiše nobenega signala, ki naj se prenese z ukazom kill, potem je TERMIN prenese signal (privzeto), ki bo prekinil proces. Če signal ni opisan, bo privzeto nastavljen - petnajst ( -TERMIN ).

Najpogosteje uporabljeni signali so naslednji:

    HUP (1)-Ponovno naloži proces.UBITI (9)-Ubije proces.TERMIN (15)-Elegantno ustavi proces.

Ukaz kill lahko uporabimo skupaj z -l možnost za pridobitev seznama vseh razpoložljivih signalov:

 $ kill -l 

Kill ukaz

Te signale bi lahko opisali na tri različne načine. Ti načini so navedeni spodaj:

ubuntu kateri ukaz
  • Po številu (npr. -6)
  • Brez predpone SIG (npr. -kill)
  • S predpono SIG (npr. -SIGkill)

Spodnji ukazi so si med seboj podobni:

  • $ ubij -SIGHUP PID_NUMBER
  • $ ubij -HUP PID_NUMBER
  • $ ubij -1 PID_NUMBER

PID-ji, podani ukazu kill, so lahko kateri koli izmed spodnjih:

  1. Signal bo prenesen v proces skupaj z ID-jem, podobnim PID-ju, ko je PID večji od nič.
  2. Signal bo prenesen v vsak proces znotraj trenutne skupine procesov, ko je PID enakovreden nič. To pomeni, da bo signal prenesen v vsak proces, povezan z GID lupine, ki zahteva ukaz kill. Uporabimo lahko ps -efj ukaz za ogled ID-jev skupine procesov (GID-jev).
  3. Signal bo prenesen v vsak proces skupaj s podobnim UID kot uporabnik, ki zahteva ukaz, ko je PID enakovreden -1. Če je uporabnik, ki zahteva, root, potem bo signal prenesen v vse procese, razen v proces kill in init.
  4. Signal bo prenesen v vsak proces znotraj skupine procesov skupaj z GID, podobnim absolutni vrednosti PID, ko je PID manjši od -1.

Običajni uporabniki lahko prenašajo signale v svoje procese. Ne vključuje pa tistih uporabnikov, ki so povezani s katerim koli drugim uporabnikom. Po drugi strani pa lahko korenski uporabnik prenese signal v procese drugega uporabnika.

markdown slike
  • PID -1 je zelo edinstven, ker označuje vsak proces, razen init in kill, ki je nadrejeni proces vsakega procesa v sistemu.
  • Negativne vrednosti PID se uporabljajo za označevanje ID-ja skupine procesov. Ko posredujemo kateri koli ID skupine procesov, bo vsak proces znotraj te skupine prejel signal.
  • Za prikaz seznama tekočih procesov lahko uporabimo ukaz ps in prikazal nam bo tekoče procese skupaj s številko PID. Podati moramo PID za določanje, kateri proces naj prejme signal ukaza kill.

Sintaksa:

 $ps 

Kill ukaz

ps za: Ta ukaz se uporablja za prikaz vseh tekočih procesov skupaj z njihovimi PID-ji in drugimi podrobnostmi. V primeru, da ne poznamo ID-ja procesa, lahko uporabimo ta ukaz.

Kill ukaz

Možnosti ukaza kill

1. ubiti -l: Ta možnost se uporablja za prikaz vseh obstoječih signalov, uporabimo lahko naslednjo možnost ukaza:

Sintaksa:

 $kill -l 

Kill ukaz

2. ubij pid: Ta možnost se uporablja za prikaz, kako uporabiti PID skupaj z ukazom kill.

Sintaksa:

 $kill pid 

Kill ukaz

3. ubiti -L: Ukaz kill -L lahko uporabite za izpisovanje obstoječih signalov v formatu tabele.

dva proti ena multiplekser

Sintaksa:

 /bin/kill -L 

Kill ukaz

4. Prevedite številko signala: Vsako številko signala lahko preprosto prevedemo v ime signala z uporabo naslednjega ukaza:

 /bin/kill --list=12 

Kill ukaz