Kuinka tappaa Linux-prosessi käyttämällä Kill, Pkill ja Killall


Linuxissa prosessin tappaminen tarkoittaa käynnissä olevan ohjelman suorittamisen lopettamista tai pysäyttämistä. Jokaiselle käynnissä olevalle prosessille on määritetty yksilöllinen tunnistenumero, joka tunnetaan nimellä Prosessitunnus (PID), joka auttaa järjestelmää seuraamaan tällä hetkellä aktiivisia prosesseja.

Tässä artikkelissa opimme Linuxin tappoprosessista ja prosessin löytämisestä ja lopettamisesta Linuxin eri työkaluilla ja komentoilla.

Mikä on Linux-prosessi

Yksinkertaisesti sanottuna prosessi on kuin ohjelma, joka on parhaillaan käynnissä järjestelmässä, ja jokaisella prosessilla on oma erityinen tunnusnumeronsa (PID). Joskus käynnissä oleva ohjelma tai prosessi voi kuitenkin toimia väärin, lakata vastaamasta tai käyttää liikaa järjestelmän resursseja.

Kun näin tapahtuu, meidän on pysäytettävä tai "tappattava" prosessi, ja tässä tappamiskomento on hyödyllinen.

Mikä on Kill Command

Kill-komento on tärkeä apuohjelma, jonka avulla käyttäjät voivat lähettää signaaleja (pysäyttää tai lopettaa) parhaillaan käynnissä oleville prosesseille ja kehottaa heitä poistumaan tai lopettamaan väkisin.

Kill-komento on hyödyllinen, kun haluat hallita ja ohjata eri ohjelmien toimintaa Linux-järjestelmässäsi, kuten:

  • Kaikkien automaattisten prosessien pysäyttämiseksi.
  • Pysäyttääksesi vahingossa alkaneen prosessin.
  • Liian paljon muistia käyttävän prosessin pysäyttäminen.
  • Keskeyttääksesi kaikki käynnissä olevat prosessit Linuxissa.
  • Taustalla käynnissä olevan prosessin pysäyttäminen.

kill-komennon käyttäminen osoitteesta /usr/bin tarjoaa lisäominaisuuksia prosessin lopettamiseen prosessin nimen perusteella käyttämällä pkill-komentoa, joka tunnistaa prosessit heidän nimensä.

Prosessin tunnuksen tai prosessin nimen löytäminen

Ennen käynnissä olevan prosessin lopettamista on tärkeää tunnistaa sen prosessitunnus (PID) tai nimi käyttämällä seuraavaa ps-komentoa, joka näyttää tiedot kaikista järjestelmän käynnissä olevista prosesseista niiden PID-tunnuksella (prosessitunnuksella) ja muilla tiedoilla.

ps -ef

Jos haluat löytää tietyn prosessinimen PID, voit käyttää grep-komentoa, joka luettelee kaikki järjestelmässä käynnissä olevat prosessit ja suodattaa tulokset näyttämään vain ne, jotka sisältävät termin "mariadb<".".

ps -ef | grep mariadb

Vaihtoehtoisesti voit etsiä prosessin PID:n suoraan nimen perusteella käyttämällä pgrep-komentoa kuvan mukaisesti.

pgrep mariadb

Kuinka tappaa prosessi Linuxissa

Ennen kuin tapat, pysäytät tai lopetat prosessin, mieti käyttöoikeuksia. Jos olet pääkäyttäjä, voit pysäyttää minkä tahansa prosessin, mutta jos olet tavallinen käyttäjä, sinun on lisättävä "sudo" ennen komentoa tai vaihdettava root-käyttäjäksi " su” käyttääksesi lopetuskomentoa.

Kill-komennon yleinen syntaksi on:

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

Tapakomennon Signaalin nimi voisi olla:

Selvästi yllä olevasta käytöksestä:

  • SIGTERM on oletusarvoinen ja turvallisin tapa lopettaa prosessi.
  • SIGHUP on vähemmän turvallinen tapa pysäyttää prosessi kuin SIGTERM.
  • SIGKILL on vaarallisin tapa edellä mainituista kolmesta tapaa lopettaa prosessi, joka lopettaa prosessin tallentamatta.

Linuxissa on erilaisia signaaleja, joita voit käyttää prosessien pysäyttämiseen, lopettamiseen tai keskeyttämiseen. Voit listata kaikki saatavilla olevat tapposignaalit niiden nimillä ja vastaavilla numeroilla käyttämällä seuraavaa komentoa, joka listaa

kill -l

Saatavilla on useita signaaleja, mutta useimmissa tapauksissa käytämme vain SIGKILL (9) ja SIGTERM (15).

Prosessin lopettamiseksi meidän on tiedettävä prosessin prosessitunnus. Prosessi on ohjelman esiintymä. Joka kerta kun ohjelma käynnistyy, tälle prosessille luodaan automaattisesti yksilöllinen PID.

Jokaisella Linuxin prosessilla on pid. Ensimmäinen prosessi, joka käynnistyy, kun Linux-järjestelmä käynnistetään, on – init-prosessi, joten sille annetaan useimmissa tapauksissa arvo 1.

Init on pääprosessi, eikä sitä voi lopettaa tällä tavalla, mikä varmistaa, että pääprosessia ei tapahdu vahingossa. Init päättää ja antaa itsensä tappaa, missä tappaminen on vain sammutuspyyntö.

Ennen kuin siirrymme eteenpäin ja suoritamme tappamiskomennon, huomioi muutama tärkeä seikka:

  • Käyttäjä voi tappaa kaikki prosessinsa.
  • Käyttäjä ei voi tappaa toisen käyttäjän prosessia.
  • Käyttäjä ei voi tappaa järjestelmän käyttämiä prosesseja.
  • Pääkäyttäjä voi tappaa järjestelmätason prosessin ja minkä tahansa käyttäjän prosessin.

Voit lopettaa mariadb-prosessin PID käyttämällä kill-komentoa kuvan mukaisesti.

kill -9 3383

Yllä oleva komento lopettaa prosessin, jossa on pid=3383, jossa PID on prosessin numeerinen arvo.

Toinen tapa suorittaa sama toiminto voidaan kirjoittaa uudelleen nimellä.

kill -SIGTERM 3383

Vastaavasti 'kill -9 PID' on samanlainen kuin 'kill -SIGKILL PID' ja päinvastoin.

Voit varmistaa prosessin päättymisen uudelleen käyttämällä ps-komentoa.

ps -ef | grep mariadb

Kuinka tappaa useita prosesseja Linuxissa

Jos haluat lopettaa useita prosesseja Linuxissa käyttämällä niiden prosessitunnuksia (PID), voit käyttää kill-komentoa yhdessä asianmukaisten PID-numeroiden kanssa.

Tunnista ensin niiden prosessien PID-tunnukset, jotka haluat lopettaa käyttämällä ps- tai pgrep-komentoa.

ps aux | grep apache2
OR
pgrep apache2

Kun sinulla on PID-tunnukset, lopeta ne kill-komennolla.

kill -9 PID1 PID2 PID3

Kuinka tappaa prosessi Linuxissa käyttämällä prosessin nimeä

Prosessin lopettamiseksi prosessin nimellä käytämme pkill-komentoa, joka on kill-komennon versio, jonka avulla voit mainita prosessin nimen tai mallin paikantaa prosessi.

Sinun on oltava tietoinen prosessin nimestä ennen tappamista, ja väärän prosessinimen syöttäminen voi hämätä sinua.

pkill mysqld

Entä jos prosessissa on liian monta ilmentymää ja useita aliprosesseja, meillä on komento killall, joka ottaa prosessin nimen argumenttina prosessin numeron sijaan.

Kuinka tappaa prosessi Linuxissa Killall-komennolla

Suurin ero killallin ja killin välillä on, että killall voi lopettaa prosessin nimellään, kun taas kill-komento perustuu prosessin tunnukseen (pid).

Voit tappaa kaikki mysql-esiintymät ja aliprosessit käyttämällä seuraavaa komentoa.

killall mysqld
OR
pkill mysqld

Voit aina tarkistaa prosessin tilan, onko se käynnissä vai ei, käyttämällä jotakin alla olevista komennoista.

systemctl status mysql
pgrep mysql
ps -aux | grep mysql

Linuxin graafiset valvontatyökalut, kuten htop tai gnome-system-monitor, tarjoavat käyttäjäystävällisen käyttöliittymän prosessien etsimiseen ja lopettamiseen.

Johtopäätös

Siinä se nyt minulta. Palaan pian toisen mielenkiintoisen ja informatiivisen aiheen kanssa. Siihen asti pysy kuulolla ja yhteydessä Tecmintiin ja pidä huolta terveydestäsi. Älä unohda jakaa arvokasta palautettasi kommenttiosiossa.