Jak zabić proces w Linux

Jak zabić proces w Linux
Każdy system operacyjny Linux jest wyposażony w polecenie Kill. Jedynym celem tego narzędzia jest zakończenie procesu docelowego. Jest to potężne narzędzie, które sprawia, że ​​Linux jest dość wszechstronny, szczególnie w polach serwerów i przedsiębiorstw, w których poważna zmiana/aktualizacja może zacząć działać bez ponownego uruchomienia całego urządzenia. W tym artykule będę pokazać, jak zabić proces za pomocą zabić, Pkill I zabić wszystkich.

Zabijanie procesu

Do zabicia procesu będziemy używać garstki narzędzi: zabić, Pkill, I zabić wszystkich. Wszystkie działają w zasadzie w ten sam sposób.

Te narzędzia same nie kończą tego procesu. Zamiast tego wysyłają wyznaczony sygnał do docelowego procesu lub grup procesowych. Jeśli nie określiłeś żadnego konkretnego sygnału, Sigterm jest wysyłany jako domyślny sygnał. Istnieje jednak wiele obsługiwanych sygnałów, na przykład Sigkill, westchnienie itp.

Oto podstawowa struktura poleceń dla zabić, Pkill I zabić wszystkich.

$ zabój
$ pkill
$ Killall

O ile to możliwe, zaleca się użycie zabić.

Zabić, Pkill I zabić wszystkich lokalizacje

Kill jest domyślnym poleceniem do zakończenia procesu.

$ Kill - -Help

Jest uruchomiony z katalogu /usr /bin.

$, które zabijają

Korzyści polega na tym, że umożliwia również dostęp do Pkill, kolejne polecenie podobne do zabicia, które umożliwia proces zakończenia na podstawie ich nazwy.

$ PKILL -HELP
$ które pkill

Niektóre aplikacje uruchamiają wiele procesów tego samego wykonywalnego. Jeśli chcesz zakończyć wiele procesów o tej samej nazwie, użyj narzędzia Killall.

$ KILLALL -HELP
$ które Killall

Wymień wszystkie uruchomione procesy

Pierwszym zadaniem jest identyfikacja PID (numer identyfikacyjny procesu) i/lub nazwa procesu, którą chcesz zakończyć. W tym przykładzie będę używać Firefox jako procesu docelowego do zakończenia. Uruchom następujące polecenie, aby wymienić wszystkie uruchomione procesy w systemie.

$ ps -a

W przypadku większości zadań musimy znać PID procesu docelowego. Jednak w niektórych sytuacjach korzystanie z nazwy procesu jest bardziej odpowiednie.

Jeśli znasz dokładną nazwę procesu docelowego, możesz bezpośrednio użyć PID Pidof.

$ pidof

Kolejnym interesującym narzędziem do pobrania informacji o procesie docelowym jest PGREP. Jest specjalnie zaprojektowany do tego celu.

$ pgrep

Zabij sygnały

Teraz spójrzmy na sygnały, które wspierają narzędzia zabijania. To ogromna lista. Oczywiście nie wszystkie są niezbędne do każdej sytuacji. W rzeczywistości większość sytuacji wymaga tylko garstki sygnałów.

Najpierw spójrzmy na listę, która zabija wsparcie.

$ Kill -l

Istnieją 2 sposoby zdefiniowania, który sygnał chcesz wysłać. Możesz użyć pełnej nazwy sygnału lub jej równoważnej wartości.

$ zabój -

Lub,

$ zabój -

Najpopularniejsze sygnały to westchnienie (1), Sigkill (9) i Sigterm (15). Ogólnie rzecz biorąc, SIGTERM jest domyślnym i najbezpieczniejszym sposobem zakończenia procesu docelowego.

W przypadku Pkilla podporządkowany sygnał jest taki sam jak zabójstwo. Jednak w przypadku Killall liczba obsługiwanych sygnałów i nazw sygnałów jest inna.

$ KILLALL -L

Zabijanie procesu

Aby zabić proces, potrzebujemy PID tego procesu docelowego. Zakładając, że masz PID, uruchom następujące polecenie, aby.

$ zabój

Tutaj Kill wyśle ​​domyślny sygnał Sigterm do PID (S). Jeśli chcesz zakończyć wiele procesów, wspomnij o wszystkich PIDS oddzielonych przestrzenią.

$ zabój

Określmy, który sygnał chcesz wysłać do celu.

Chcesz zakończyć proces za pomocą jego nazwy? Użyj Pkill.

$ pkill

W niektórych przypadkach konkretna aplikacja może mieć zbyt wiele procesów. Wpisywanie wszystkich tych pids jest czasochłonne i męczące. W takich scenariuszach będziemy używać narzędzia Killall. Jest dość podobny do zabicia, ale działa z nazwą procesu.

$ Killall

Na przykład, gdy uruchamia Firefox, rozpoczyna garść procesów. Aby zabić ich wszystkie naraz, uruchom to polecenie.

$ Killall Firefox

Chcesz zakończyć wszystkie procesy działające pod określonym użytkownikiem? Killall może wykonać pracę, nie ma problemu. Bądź ostrożny podczas uruchamiania tego, ponieważ może on rozbić system i tworzyć inne problemy. To nie zadziała, jeśli próbujesz zakończyć procesy działające pod innym użytkownikiem o wyższym uprawnieniu.

$ KILLALL -u

Konflikt uprawnień

Warunkowe cechy hierarchii użytkowników Linux również mają również zastosowanie, gdy masz zamiar zakończyć aplikację. Użytkownik nie może zakończyć procesów działających z wyższym przywilejem, tylko procesy o równym/niższym uprawnieniu. Ponadto użytkownik nie może manipulować procesami działającymi pod różnym użytkownikiem.

Na przykład rozważmy polecenie tak. Jeśli jest nazywany bieżącym użytkownikiem, można go łatwo rozwiązać za pomocą zabójstwa.

$ zabij tak

A teraz jeśli Tak działał pod źródło? Wywołanie zabójstwa, ponieważ obecny użytkownik nie będzie działał.

Podobnie, jeśli proces działał pod innym użytkownikiem, nie możesz go zakończyć z innego konta użytkownika.

Końcowe przemyślenia

W tym artykule zaprezentowano tylko podstawy i wspólne użycie tych poleceń. Te narzędzia zabijania są zdolne do więcej niż to. Aby mieć dogłębną wiedzę na temat umiejętności dowolnego narzędzia, polecam sprawdzić stronę mężczyzny.

$ Man Kill
$ Man Pkill

Cieszyć się!