Kaip nužudyti Linux procesą naudojant Kill, Pkill ir Killall


Linux sistemoje proceso žudymas reiškia veikiančios programos vykdymo nutraukimą arba sustabdymą. Kiekvienam vykdomam procesui priskiriamas unikalus identifikatoriaus numeris, vadinamas Proceso ID (PID), kuris padeda sistemai sekti šiuo metu aktyvius procesus.

Šiame straipsnyje sužinosime apie „Linux“ žudymo procesą ir kaip rasti bei nutraukti procesą naudojant skirtingus „Linux“ įrankius ir komandas.

Kas yra Linux procesas

Paprastais žodžiais tariant, procesas yra kaip programa, kuri šiuo metu veikia sistemoje, ir kiekvienas procesas turi savo specialų ID (PID) numerį. Tačiau kartais veikianti programa ar procesas gali veikti netinkamai, nustoti reaguoti arba išnaudoti per daug sistemos išteklių.

Kai taip nutinka, turime sustabdyti arba „nužudyti“ procesą ir čia pravers nužudymo komanda.

Kas yra „Kill Command“.

Komanda „nužudyti“ yra labai svarbi priemonė, leidžianti vartotojams siųsti signalus (sustabdyti arba nutraukti) šiuo metu vykdomiems procesams, nurodant jiems maloniai išeiti arba priverstinai nutraukti.

Nužudymo komanda yra naudinga, kai reikia valdyti ir valdyti skirtingų „Linux“ sistemos programų veiklą, pavyzdžiui:

  • Norėdami sustabdyti bet kokį automatizuotą procesą.
  • Norėdami sustabdyti atsitiktinai pradėtą procesą.
  • Norėdami sustabdyti procesą, kuris naudoja per daug atminties.
  • Norėdami priverstinai nutraukti bet kokį veikiantį procesą sistemoje „Linux“.
  • Norėdami sustabdyti fone vykdomą procesą.

Naudodami komandą kill/usr/bin, galite gauti papildomų funkcijų, leidžiančių sustabdyti procesą pagal proceso pavadinimą naudojant pkill, kuri identifikuoja procesus pagal jų vardai.

Kaip rasti proceso ID arba proceso pavadinimą

Prieš nutraukiant vykdomą procesą, būtina nustatyti jo proceso ID (PID) arba pavadinimą, naudojant šią ps komandą, kuri rodo informaciją apie visus sistemoje veikiančius procesus su jų PID (proceso ID) ir kita informacija.

ps -ef

Jei norite rasti konkretų proceso pavadinimą PID, galite naudoti komandą grep, kuri išvardins visus sistemoje veikiančius procesus ir filtruos rezultatus, kad būtų rodomi tik tie, kuriuose yra terminas „mariadb<“.

ps -ef | grep mariadb

Arba galite tiesiogiai rasti proceso PID pagal pavadinimą naudodami komandą pgrep, kaip parodyta.

pgrep mariadb

Kaip nužudyti procesą „Linux“.

Prieš žudydami, sustabdydami ar nutraukdami procesą, pagalvokite apie leidimus. Jei esate šakninis vartotojas, galite sustabdyti bet kokį procesą, bet jei esate įprastas vartotojas, prieš komandą turite pridėti „sudo“ arba perjungti į šakninį su „ su“, kad galėtumėte naudoti nutraukimo komandą.

Įprasta nužudymo komandos sintaksė yra tokia:

kill [signal or option] PID(s)
OR
sudo kill [signal or option] PID(s)

Užmušimo komandai Signalo pavadinimas gali būti:

Aišku iš anksčiau pateikto elgesio:

  • SIGTERM yra numatytasis ir saugiausias būdas sustabdyti procesą.
  • SIGHUP yra mažiau saugus būdas sustabdyti procesą nei SIGTERM.
  • SIGKILL yra nesaugiausias būdas iš pirmiau minėtų trijų būdų, kaip sustabdyti procesą, kuris užbaigia procesą neišsaugojus.

Linux sistemoje yra įvairių signalų, kuriuos galite naudoti norėdami sustabdyti, užbaigti ar pristabdyti procesus. Galite išvardyti visus galimus nužudymo signalus su jų pavadinimais ir atitinkamais numeriais naudodami šią komandą, kuri bus pateikta

kill -l

Nors yra keli galimi signalai, tačiau daugeliu atvejų naudojame tik SIGKILL (9) ir SIGTERM (15).

Norėdami sustabdyti procesą, turime žinoti proceso ID. Procesas yra programos pavyzdys. Kiekvieną kartą paleidus programą, automatiškai sugeneruojamas unikalus to proceso PID.

Kiekvienas procesas Linux turi pid. Pirmasis procesas, kuris prasideda paleidus „Linux“ sistemą, yra – init process, todėl daugeliu atvejų jam priskiriama reikšmė „1“.

Init yra pagrindinis procesas ir negali būti užmuštas tokiu būdu, o tai užtikrina, kad pagrindinis procesas nebūtų užmuštas netyčia. Init nusprendžia ir leidžia save nužudyti, kur nužudymas yra tik užklausa išjungti.

Prieš žengdami į priekį ir vykdydami nužudymo komandą, reikia atkreipti dėmesį į keletą svarbių dalykų:

  • Vartotojas gali nužudyti visus savo procesus.
  • Vartotojas negali nužudyti kito vartotojo proceso.
  • Vartotojas negali nužudyti sistemos naudojamų procesų.
  • Pagrindinis vartotojas gali nužudyti sistemos lygio procesą ir bet kurio vartotojo procesą.

Norėdami sustabdyti mariadb procesą PID, naudokite nužudymo komandą, kaip parodyta.

kill -9 3383

Aukščiau pateikta komanda sustabdys procesą, kurio pid=3383, kur PID yra skaitinė proceso reikšmė.

Kitas būdas atlikti tą pačią funkciją gali būti perrašytas kaip.

kill -SIGTERM 3383

Panašiai „nužudyti -9 PID“ yra panašus į „nužudyti -SIGKILL PID“ ir atvirkščiai.

Norėdami patvirtinti, kad procesas baigtas, vėl galite naudoti ps komandą.

ps -ef | grep mariadb

Kaip nužudyti kelis procesus „Linux“.

Norėdami nutraukti kelis procesus sistemoje „Linux“ naudodami jų procesų ID (PID), galite naudoti komandą nužudyti kartu su atitinkamais PID numeriais.

Pirmiausia nustatykite procesų, kuriuos norite nutraukti, PID naudodami komandą ps arba pgrep.

ps aux | grep apache2
OR
pgrep apache2

Kai turėsite PID, naudokite komandą nužudyti, kad juos nutrauktumėte.

kill -9 PID1 PID2 PID3

Kaip nužudyti procesą „Linux“ naudojant proceso pavadinimą

Norėdami užbaigti procesą naudodami proceso pavadinimą, naudosime komandą pkill, kuri yra komandos kill versija, leidžianti paminėti proceso pavadinimą arba šabloną. rasti procesą.

Prieš žudydami turite žinoti proceso pavadinimą, o neteisingo proceso pavadinimo įvedimas gali jus suklaidinti.

pkill mysqld

Ką daryti, jei procese yra per daug egzempliorių ir keli antriniai procesai, turime komandą „killall“, kuri vietoj proceso numerio paima proceso pavadinimą kaip argumentą.

Kaip nužudyti procesą „Linux“ naudojant „Killall“ komandą

Pagrindinis skirtumas tarp killall ir kill yra tas, kad killall gali užbaigti procesą jo pavadinimu, o komanda kill priklauso nuo proceso ID (pid).

Norėdami nužudyti visus mysql egzempliorius kartu su antriniais procesais, naudokite komandą taip.

killall mysqld
OR
pkill mysqld

Visada galite patikrinti proceso būseną, ar jis vykdomas, ar ne, naudodami bet kurią iš toliau pateiktų komandų.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

„Linux“ grafinių sistemų stebėjimo įrankiai, pvz., „htop“ arba gnome-system-monitor, suteikia patogią sąsają procesams rasti ir naikinti.

Išvada

Tai kol kas nuo manęs. Greitai grįšiu su kita įdomia ir informatyvia tema. Iki tol sekite naujienas ir prisijunkite prie Tecmint bei rūpinkitės savo sveikata. Nepamirškite pasidalinti savo vertingais atsiliepimais komentarų skiltyje.