Folyamatok leállítása Linux használatával

Időnként lefagy egy program, ilyenkor szükség van egy módszerre a megölésére. Linux számos megközelítést kínál a programok héjból történő kényszerített leállítására.

A „killall” parancs használata

Az Öld meg mindet parancs név szerint megöli az összes folyamatot. Ez azt jelenti, hogy ha ugyanannak a programnak három verziója fut, a killall parancs mindhármat megöli.

Nyisson meg például egy kis programot, például egy képnézegetőt. Most nyissa meg ugyanannak a képnézegetőnek egy másik példányát. Ez a példa az Xviewert használja, amely a következő klónja Eye Of Gnome.

Nyisson meg egy terminált, és írja be a következő parancsot:

killall xviewer

A program mindkét példánya bezárul.

Öld meg a pontos folyamatot

A killall parancs furcsa eredményeket produkálhat. Ha 15 karakternél hosszabb parancsnévvel rendelkezik, a killall parancs csak az első 15 karakteren működik. Ha tehát két olyan programja van, amelyeknek ugyanaz az első 15 karaktere, akkor mindkét program törlődik, bár csak az egyiket akarta megölni.

Ennek megkerüléséhez megadhatja a következő kapcsolót, amely csak a pontos névnek megfelelő fájlokat öli meg.

killall -e

A kis- és nagybetűk figyelmen kívül hagyása a programok leölésekor

Annak érdekében, hogy a killall parancs figyelmen kívül hagyja a megadott programnév kis- és nagybetűjét, használja a következő parancsot:

killall -I
killall --ignore-case

Öld meg az összes programot ugyanabban a csoportban

Amikor egy parancsot, például a következőt futtat, két folyamatot hoz létre:

ps -ef | Kevésbé

Egy parancs a ps -ef rész, amely felsorolja az összes futó folyamatot a rendszeren, és a kimenetet a rendszer a kevesebb parancsot. Mindkét program ugyanabba a csoportba tartozik, ami bash.

Mindkét program egyidejű leállításához futtassa a következő parancsot:

killall -g

Például a bash shellben futó összes parancs leállításához futtassa a következőt:

killall -g bash

Az összes futó csoport listázásához futtassa a következő parancsot:

ps -g

Kérjen megerősítést a gyilkos programok előtt

Nyilvánvaló, hogy a killall parancs egy erőteljes parancs, és nem akarja véletlenül megölni a rossz folyamatokat.

Amikor a következő kapcsolót használja, a rendszer megkérdezi, hogy biztos-e benne, mielőtt minden folyamat leáll.

killall -i

Állítsa le a bizonyos ideig futó folyamatokat

Képzelje el, hogy egy programot futtat, és sokkal tovább tart, mint azt remélte.

A parancsot a következő módon törölheti:

killall -o h4

Az h a fenti parancsban órákat jelent – ​​ez a parancs leállítja a négy órán keresztül vagy tovább futó folyamatokat.

Adja meg a következő mérföldkövek egyikét:

  • s: másodperc
  • m: percek
  • h: órák
  • d: napok
  • w: hét
  • M: hónapok
  • y: évek

Alternatív megoldásként a most induló parancsok leállításához használja a következő kapcsolót:

killall -y h4

Ezúttal a killall parancs megöl minden olyan programot, amely 4 óránál rövidebb ideig fut.

Ne szólj nekem, ha egy folyamatot nem öltek meg

Alapértelmezés szerint, ha megpróbál megölni egy nem futó programot, a következő hibaüzenet jelenik meg:

programnév: nem található folyamat

Ha nem szeretné, hogy közöljék vele, ha a folyamat nem található, használja a következő parancsot:

killall -q

Reguláris kifejezések használata

A program vagy parancs nevének megadása helyett adjon meg egy reguláris kifejezést, így a reguláris kifejezésnek megfelelő összes folyamatot a killall parancs zárja be.

Reguláris kifejezés használatához használja a következő parancsot:

killall -r 

Programok megölése egy adott felhasználó számára

Egy adott felhasználó tulajdonában lévő program leállításához használja a -u kapcsoló:

killall -u 

Hagyja ki a program nevét a felhasználó összes folyamatának leállításához.

Várd meg, amíg a killall befejeződik

Alapértelmezés szerint a killall visszatér a terminálhoz, amikor futtatja, de kényszerítheti a killall-t, hogy várja meg, amíg az összes megadott folyamat bezárul, mielőtt visszatérne a terminálablakba.

Futtassa a következő parancsot:

killall -w

Ha a program soha nem hal meg, akkor killall is tovább él.