Kaip nužudyti procesą „Linux“

How Kill Process Linux



Kiekviena „Linux“ operacinė sistema turi komandą „kill“. Vienintelis šio įrankio tikslas yra nutraukti tikslinį procesą. Tai galingas įrankis, dėl kurio „Linux“ yra gana universalus, ypač serverių ir įmonių srityse, kuriose gali įsigalioti esminis pakeitimas/atnaujinimas nepaleidžiant iš naujo visos mašinos. Šiame straipsnyje aš parodysiu, kaip nužudyti procesą naudojant nužudyti , pkill ir killall .

Žudyti procesą

Norėdami nužudyti procesą, naudosime keletą įrankių: nužudyti , pkill , ir killall . Visi jie iš esmės veikia vienodai.







Šios priemonės nesibaigia pačiu procesu. Vietoj to jie siunčia paskirtą signalą tiksliniam procesui ar proceso grupėms. Jei nenurodėte jokio konkretaus signalo, SIGTERM siunčiamas kaip numatytasis signalas. Tačiau yra keletas palaikomų signalų, pavyzdžiui, SIGKILL, SIGHUP ir kt.



Čia yra pagrindinė komandų struktūra nužudyti , pkill ir killall .



$nužudyti <signal_or_options> <PID(s)>
$ pkill<signal_or_options> <proceso_pavadinimas>
$killall <variantas> <proceso_pavadinimas>

Kai tik įmanoma, rekomenduojama naudoti nužudyti .





Nužudyk , pkill ir killall vietos

Nužudyti yra numatytoji proceso nutraukimo komanda.



$nužudyti -padėti

Jis paleidžiamas iš /usr /bin katalogo.

$kuris nužudyti

Privalumas yra tai, kad ji taip pat leidžia pasiekti „pkill“ - kitą komandą, panašią į „kill“, leidžiančią nutraukti procesą pagal jų vardą.

$pkill-padėti

$kurispkill

Kai kurios programos vykdo kelis tos pačios vykdomosios programos procesus. Jei norite nutraukti daugybę procesų tuo pačiu pavadinimu, naudokite „killall“ įrankį.

$killall -padėti

$kuris killall

Visų veikiančių procesų sąrašas

Pati pirmoji užduotis yra identifikuoti PID (proceso identifikavimo numerį) ir (arba) proceso pavadinimą, kurį norite nutraukti. Šiame pavyzdyje aš naudosiu „Firefox“ kaip tikslinį užbaigimo procesą. Vykdykite šią komandą, kad išvardytumėte visus sistemos procesus.

$ps -TO

Atlikdami daugumą užduočių, turime žinoti tikslinio proceso PID. Tačiau tam tikrose situacijose labiau tinka naudoti proceso pavadinimą.

Jei žinote tikslų tikslinio proceso pavadinimą, galite tiesiogiai gauti PID naudodami pidof .

$pidof <proceso_pavadinimas>

Kitas įdomus įrankis norint gauti informaciją apie tikslinį procesą yra pgrep. Jis specialiai sukurtas šiam tikslui.

$pgrep<variantas> <proceso_pavadinimas>

Nužudyk signalus

Dabar pažvelkime į signalus, kuriuos palaiko žudymo įrankiai. Tai didžiulis sąrašas. Žinoma, ne visi jie reikalingi kiekvienai situacijai. Tiesą sakant, daugeliui situacijų reikia tik kelių signalų.

Pirma, pažvelkime į sąrašą, kuris žudo atramas.

$nužudyti -jie

Yra 2 būdai, kaip nustatyti, kurį signalą norite siųsti. Galite naudoti visą signalo pavadinimą arba lygiavertę reikšmę.

$nužudyti-<signalą> <PID>

Arba,

$nužudyti-<signal_value> <PID>

Populiariausi signalai yra SIGHUP (1), SIGKILL (9) ir SIGTERM (15). Paprastai SIGTERM yra numatytasis ir saugiausias būdas nutraukti tikslinį procesą.

„Pkill“ atveju palaikomas signalas yra toks pat kaip „kill“. Tačiau „killall“ atveju palaikomų signalų skaičius ir signalų pavadinimai skiriasi.

$killall -jie

Žudyti procesą

Norėdami nužudyti procesą, mums reikia to tikslinio proceso PID. Darant prielaidą, kad turite PID, paleiskite šią komandą, kad ją užmuštumėte.

$nužudyti <variantas> <PID>

Čia „kill“ siunčia numatytąjį signalą SIGTERM į PID (-us). Jei norite nutraukti kelis procesus, paminėkite visus PID, atskirtus tarpais.

$nužudyti <variantas> <PID_1> <PID_2>

Nurodykime, kokį signalą norite siųsti tikslui.

Norite nutraukti procesą naudodami tik jo pavadinimą? Naudokite pkill.

$pkill<variantas> <proceso_pavadinimas>

Kai kuriais atvejais tam tikroje programoje gali veikti per daug procesų. Visų šių PID įvedimas užima daug laiko ir vargina. Tokiais atvejais naudosime „killall“ įrankį. Tai gana panašu į žudymą, tačiau jis veikia su proceso pavadinimu.

$killall <variantas> <proceso_pavadinimas>

Pavyzdžiui, paleidus „Firefox“, jis paleidžia keletą procesų. Norėdami nužudyti visus iš karto, paleiskite šią komandą.

$killallfirefox

Norite nutraukti visus procesus, vykdomus tam tikram vartotojui? Killall gali atlikti darbą be jokių problemų. Būkite atsargūs paleisdami šį, nes tai gali sugadinti sistemą ir sukelti kitų problemų. Tai neveiks, jei bandysite nutraukti procesus, kurie vykdomi naudojant kitą vartotoją su aukštesnėmis privilegijomis.

$killall -u <Vartotojas>

Leidimų konfliktas

Būdingos „Linux“ vartotojų hierarchijos savybės taip pat taikomos, kai ketinate nutraukti programą. Vartotojas negali nutraukti procesų, kurie veikia su didesnėmis privilegijomis, tik procesų, turinčių lygias/mažesnes privilegijas. Be to, vartotojas negali manipuliuoti procesais, kurie vyksta skirtingiems vartotojams.

Pavyzdžiui, apsvarstykime komandą „taip“. Jei jis vadinamas dabartiniu vartotoju, jį galima lengvai nutraukti naudojant „kill“.

$nužudyti taip

Na, o kas, jei taip bėgo po šaknis ? Skambinimas „kill“, kaip dabartinis vartotojas, neveiks.

Panašiai, jei procesas vyko pas kitą vartotoją, negalite jo nutraukti iš kitos vartotojo paskyros.

Galutinės mintys

Šiame straipsnyje buvo pristatyti tik šių komandų pagrindai ir bendras naudojimas. Šie žudymo įrankiai sugeba daugiau. Norėdami nuodugniai išmanyti bet kurio įrankio galimybes, rekomenduoju peržiūrėti man puslapį.

$vyras nužudyti

$vyraspkill

Mėgautis!