Egy folyamat megölése
Egy folyamat megöléséhez maroknyi eszközt fogunk használni: megöl , pkill , és Öld meg mindet . Mindegyik alapvetően ugyanúgy működik.
Ezek az eszközök nem szüntetik meg magát a folyamatot. Ehelyett kijelölt jelet küldenek a célfolyamatnak vagy folyamatcsoportoknak. Ha nem adott meg konkrét jelet, akkor a SIGTERM kerül elküldésre alapértelmezett jelként. Azonban számos támogatott jel létezik, például SIGKILL, SIGHUP stb.
Itt található az alapvető parancsstruktúra megöl , pkill és Öld meg mindet .
$megöl <signal_or_options> <PID(s)>
$ pkill<signal_or_options> <folyamat_neve>
$Öld meg mindet <választási lehetőség> <folyamat_neve>
Amikor csak lehetséges, ajánlott használni megöl .
Megöl , pkill és Öld meg mindet helyszíneken
A Kill az alapértelmezett parancs egy folyamat befejezésére.
$megöl --Segítség
A /usr /bin könyvtárból fut.
$melyik megöl
Előnye, hogy hozzáférést biztosít a pkill -hez, egy másik, a killhez hasonló parancshoz, amely lehetővé teszi a folyamat lezárását a nevük alapján.
$pkill--Segítség$melyikpkill
Egyes alkalmazások ugyanazon futtatható fájl több folyamatát futtatják. Ha több azonos nevű folyamatot szeretne befejezni, használja a killall eszközt.
$Öld meg mindet --Segítség$melyik Öld meg mindet
Az összes futó folyamat felsorolása
A legelső feladat a PID (folyamatazonosító szám) és/vagy a befejezni kívánt folyamatnév azonosítása. Ebben a példában a Firefoxot fogom használni a befejezés célfolyamataként. Futtassa a következő parancsot a rendszer összes futó folyamatának felsorolásához.
$ps -NAK NEK
A legtöbb feladathoz ismernünk kell a célfolyamat PID -jét. Bizonyos helyzetekben azonban a folyamatnév használata megfelelőbb.
Ha ismeri a célfolyamat pontos nevét, közvetlenül lekérheti a PID -t pidof .
$pidof <folyamat_neve>
Egy másik érdekes eszköz a célfolyamatra vonatkozó információk begyűjtésére a pgrep. Kifejezetten erre a célra tervezték.
$pgrep<választási lehetőség> <folyamat_neve>
Öld meg a jeleket
Most nézzük meg azokat a jeleket, amelyeket az ölési eszközök támogatnak. Ez egy hatalmas lista. Természetesen nem mindegyikre van szükség minden egyes helyzetben. Valójában a legtöbb helyzet csak néhány jelzést igényel.
Először is, nézzük meg a listát, amely megöli a támogatásokat.
$megöl -az
Kétféleképpen határozhatja meg, hogy melyik jelet kívánja küldeni. Használhatja a teljes jelnevet vagy annak megfelelő értékét.
$megöl-<jel> <PID>
Vagy,
$megöl-<jel_érték> <PID>
A legnépszerűbb jelek a SIGHUP (1), SIGKILL (9) és SIGTERM (15). Általában a SIGTERM az alapértelmezett és legbiztonságosabb módja a célfolyamat leállításának.
A pkill esetében a támogatott jel ugyanaz, mint a kill. A killall esetében azonban a támogatott jelek száma és a jelnevek eltérőek.
$Öld meg mindet -azEgy folyamat megölése
Egy folyamat megöléséhez szükségünk van a célfolyamat PID -jére. Feltételezve, hogy rendelkezik a PID azonosítóval, futtassa a következő parancsot a megöléséhez.
$megöl <választási lehetőség> <PID>
Itt a kill a SIGTERM alapértelmezett jelet küldi a PID -nek. Ha több folyamatot szeretne befejezni, akkor említse meg az összes PID -t szóközzel elválasztva.
$megöl <választási lehetőség> <PID_1> <PID_2>
Adjuk meg, hogy melyik jelet szeretnénk küldeni a célpontnak.
Csak a nevét használva szeretné befejezni a folyamatot? Használj pkill -t.
$pkill<választási lehetőség> <folyamat_neve>
Bizonyos esetekben előfordulhat, hogy egy adott alkalmazásban túl sok folyamat fut. Mindezen PID-k beírása időigényes és fárasztó. Ilyen esetekben a killall eszközt fogjuk használni. Nagyon hasonló a killhez, de a folyamat nevével működik.
$Öld meg mindet <választási lehetőség> <folyamat_neve>Például a Firefox futtatásakor egy maroknyi folyamatot indít el. Ha mindet egyszerre akarja megölni, futtassa ezt a parancsot.
$Öld meg mindetfirefox
Meg szeretné szakítani az összes folyamatot, amely egy adott felhasználó alatt fut? Killall képes elvégezni a munkát, nem probléma. Legyen óvatos, amikor ezt futtatja, mivel ez tönkreteheti a rendszert és más problémákat okozhat. Nem fog működni, ha megpróbálja leállítani azokat a folyamatokat, amelyek más jogosultsággal rendelkező másik felhasználó alatt futnak.
$Öld meg mindet -u <felhasználó>Engedélykonfliktus
A Linux felhasználói hierarchia jellegzetes tulajdonságai akkor is érvényesek, amikor egy alkalmazást le akar állítani. A felhasználó nem fejezheti be a magasabb jogosultsággal futó folyamatokat, csak az azonos/alacsonyabb jogosultságú folyamatokat. Ezenkívül a felhasználó nem tudja manipulálni a különböző felhasználók alatt futó folyamatokat.
Vegyük például az igen parancsot. Ha jelenlegi felhasználónak hívják, akkor könnyen leállítható a kill használatával.
$megöl Igen
Most mi van, ha Igen alatt futott gyökér ? A kill hívása, mint a jelenlegi felhasználó, nem fog működni.
Hasonlóképpen, ha egy folyamat egy másik felhasználó alatt futott, akkor nem szüntetheti meg azt egy másik felhasználói fiókból.
Végső gondolatok
Ebben a cikkben csak a parancsok alapjait és gyakori használatát mutattuk be. Ezek az ölőeszközök ennél többre képesek. Annak érdekében, hogy alapos ismeretekkel rendelkezzen bármely eszköz képességeiről, javaslom, hogy nézze meg a man oldalt.
$Férfi megöl$Férfipkill
Élvezd!