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).
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.
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).
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.