Hogyan lehet megölni egy folyamatot a

parancssorból, ha szeretne többet megtudni a Linux adminisztrációról? Fedezze fel ezeket a Linux tanfolyamokat.

  • Bevezetés a Linux (LFS101x) – ingyenes
  • Essentials of Linux System Administration (LFS201)

megtanulják, hogyan kell megölni tévelygő folyamatok ebben a bemutatóban a mi archívumok.

kép ezt: elindított egy alkalmazást (legyen az a kedvenc asztali menüjéből vagy a parancssorból), majd elkezdi használni az elindított alkalmazást, csak azért, hogy lezárja, abbahagyja a teljesítményt, vagy váratlanul meghal. Megpróbálja újra futtatni az alkalmazást, de kiderül, hogy az eredeti soha nem állt le teljesen.

mit csinálsz? Megölöd a folyamatot. De hogyan? Hiszed vagy sem, a legjobb megoldás leggyakrabban a parancssoron belül van. Szerencsére a Linuxnak minden szükséges eszköze van ahhoz, hogy felhatalmazza Önt, a felhasználót, hogy megöljön egy hibás folyamatot. Mielőtt azonban azonnal elindítaná ezt a parancsot a folyamat megöléséhez, először tudnia kell, mi a folyamat. Hogyan gondoskodik erről a réteges feladatról? Valójában nagyon egyszerű … ha ismeri a rendelkezésére álló eszközöket.

hadd mutassam be az említett eszközöket.

a körvonalazni kívánt lépések szinte minden Linux disztribúción működnek, függetlenül attól, hogy asztali vagy szerver. Szigorúan a parancssorral foglalkozom, úgyhogy nyisd ki a terminálodat, és készülj a gépelésre.

A folyamat helymeghatározása

a nem reagáló folyamat megölésének első lépése a helymeghatározás. Két parancsot használok egy folyamat megtalálásához: top és ps. A Top egy olyan eszköz, amelyet minden rendszergazdának meg kell ismernie. A top, akkor kap egy teljes listát a jelenleg futó folyamat. A parancssorból adja ki a tetején a futó folyamatok listáját (1.ábra).

1.ábra: a felső parancs rengeteg információt ad.

ebből a listából néhány meglehetősen fontos információt fog látni. Tegyük fel például, hogy a Chrome nem reagál. A top display szerint a chrome négy példánya fut Process IDs (PID) 3827, 3919, 10764 és 11679 verzióval. Ez az információ fontos lesz, hogy egy adott módszerrel megölje a folyamatot.

bár a top hihetetlenül praktikus, nem mindig a leghatékonyabb eszköz a szükséges információk megszerzéséhez. Tegyük fel, hogy tudod, hogy a Chrome-folyamat az, amit meg kell ölnöd, és nem akarod, hogy a top által kínált valós idejű információkra nézz. Ehhez használhatja a PS parancsot, majd szűrheti a kimenetet a grep-en keresztül. A ps parancs egy aktuális folyamat pillanatképét jeleníti meg, a grep pedig egy mintának megfelelő sorokat nyomtat. Az ok, amiért szűrjük a ps-t a grep-en keresztül, egyszerű: Ha önmagában adja ki a ps parancsot, pillanatfelvételt kap az összes aktuális folyamatról. Csak a Chrome-hoz társított listát akarjuk. Szóval ez a parancs nézne ki:

ps aux | grep chrome

Az aux lehetőségek a következők:

  • a = show folyamatok minden felhasználó számára

  • u = kijelző a folyamat a felhasználó/tulajdonos

  • x = is mutatják, a folyamatok nem csatolt terminál

Az x opció fontos, amikor vadászik információt egy grafikus alkalmazás.

amikor kiadja a fenti parancsot, több információt kap, mint amire szüksége van (2.ábra) egy folyamat megöléséhez, de néha hatékonyabb, mint a top használata.

2.ábra: a szükséges információk megkeresése a PS paranccsal.

a folyamat megölése

most a folyamat megölésének feladata. Van két darab információ, amely segít megölni a tévelygő folyamat:

  • Process name

  • Process ID

az Ön által használt parancs határozza meg a megszüntetéshez használt parancsot. Két parancs van a folyamat megölésére:

  • kill – Ölj meg egy folyamatot ID

  • killall-Ölj meg egy folyamatot név szerint

vannak különböző jelek is, amelyeket mindkét megölési parancsra el lehet küldeni. Milyen jelet küld fogja meghatározni, hogy milyen eredményeket szeretne a kill parancs. Például elküldheti a HUP (hang up) jelet a kill parancsra, amely hatékonyan újraindítja a folyamatot. Ez mindig bölcs választás, ha szüksége van a folyamat azonnali újraindítására (például démon esetén). Tudod kap egy listát az összes jelet, hogy lehet küldeni a kill parancs kiadásával kill-l.meg fogja találni elég nagy számú jelek (3. ábra).

3.ábra: a rendelkezésre álló kill jelek.

a leggyakoribb kill jelek a következők:

Signal Name

Single Value

Effect

SIGHUP

Hangup

SIGINT

Interrupt from keyboard

SIGKILL

Kill signal

SIGTERM

Termination signal

SIGSTOP

17, 19, 23

Stop the process

mi a jó ebben az, hogy a jel értékét a Jelnév helyett használhatja. Tehát nem kell megjegyeznie a különböző jelek összes nevét.
tehát most használjuk a kill parancsot a chrome példányának megölésére. Ennek a parancsnak a szerkezete a következő lenne:

kill SIGNAL PID

ahol a jel az elküldendő jel, a PID pedig a megölendő folyamatazonosító. A ps parancsunkból már tudjuk, hogy az azonosítók, amiket meg akarunk ölni, 3827, 3919, 10764 és 11679. Tehát, hogy elküldjük a kill jelet, kiadjuk a parancsokat:

kill -9 3827kill -9 3919kill -9 10764kill -9 11679

miután kiadtuk a fenti parancsokat, az összes chrome-folyamat sikeres lesz.

vegyük az egyszerű útvonalat! Ha már tudjuk, hogy a megölni kívánt folyamat neve chrome, használhatjuk a killall parancsot, és ugyanazt a jelet küldhetjük a folyamatnak, mint így:

killall -9 chrome

az egyetlen figyelmeztetés a fenti parancsra, hogy lehet, hogy nem fogja el az összes futó chrome folyamatot. Ha a fenti parancs futtatása után kiadja a ps aux|grep chrome parancsot, és látja, hogy a fennmaradó folyamatok futnak, akkor a legjobb megoldás az, ha visszatér a kill parancshoz, és elküldi a signal 9-et a folyamat PID általi leállításához.

A folyamatok befejezése egyszerűvé tette

mint látható, a tévelygő folyamatok megölése közel sem olyan nehéz, mint gondolnád. Amikor egy makacs folyamattal végzek, hajlamos vagyok a killall paranccsal kezdeni, mivel ez a leghatékonyabb út a megszüntetéshez. Azonban, ha a végén egy igazán harcias folyamat, a kill parancs az út.

Tudjon meg többet a Linuxról a Linux Foundation és az edX ingyenes “bevezetés a Linuxba” tanfolyamán keresztül.

Related Posts

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük