Versija 11 nuo 2009-05-10 12:31:38

Išvalyti žinutę
Locked History Actions

kill

Komanda

kill

OS

Linux, BSD


Apibūdinimas

kill – Linux komanda, perduodanti signalą procesui. Ši komanda gali priverstinai sustabdyti procesą ir pakeisti jo prioritetą.


Paaiškinimai

Procesai Linux OS gali keistis taip vadinamais „signalais“ su branduoliu ir kitais procesais. Kai procesas gauna signalą, valdymas perduodamas jo apdorojimo paprogramei arba branduoliui, jei tokios paprogramės nėra. Komanda kill leidžia perduoti pasirinktam procesui bet kokį signalą. Signalų sąrašą galima gauti įvedus tokią komandą: kill –l. Tam, kad pasirinktam procesui būtų nusiųstas signalas, reikia įvesti: kill –[signalo Nr.] [pasirinkto proceso PID].

Pavyzdžiui, norime nutraukti grafinės failų naršyklės „Midnight Commander“ (mc) darbą. Sužinome proceso mc identifikatorių: ps –A | grep mc, PID=2742. Siunčiame SIGQUIT (Nr. 3) signalą: kill -3 2742. Procesas mc apdoros SIGQUIT signalą ir baigs savo darbą. Tačiau, jeigu mc „pakibo“, jis negalės būti užbaigtas, kadangi SIGQUIT signalo apdorojimo paprogramė negaus valdymo. Todėl naudojamas signalas Nr. 9 (SIGKILL), apdorojamas OS branduolio, ir priverstinai užbaigiantis nurodytą procesą: kill -9 2742.

Jeigu signalas nenurodytas, siunčiamas SIGTERM signalas. Jis užbaigs tuos procesus, kurie neapdoroja šio signalo. Tačiau kai kuriems procesams užbaigti būtinas tik SIGKILL signalas, kadangi jo negalima perimti.

Norint užbaigti sustabdytus procesus, kurie matomi surinkus komandą jobs, reikia surinkti komandą: kill %[proceso Nr.]

Sintaksė:

kill [ -s signal | -p ] [ -a ] [ -- ] pid ...

kill -l [ signal ]

Parametrai:

  • pid... – nurodyti procesų, kuriems komanda kill turi perduoti signalą, identifikatorių sąrašą. Kiekvienas pid argumentas turi būti proceso numeriu arba pavadinimu;

  • -s – nurodyti siunčiamą signalą. Nurodomas signalo pavadinimas arba numeris;

  • -p – nurodo, kad komanda kill turi išvesti procesų su pavadinimais identifikatorius, tačiau nesiusti jiems signalo;

  • -l – išveda signalų pavadinimų sąrašą. Šiuos pavadinimai taip pat saugomi faile /usr/include/linux/signal.h


Pavyzdys


Naudota literatūra