Jak zabić proces działający w Linux

Jak zabić proces działający w Linux

Wszystko, co działa w systemie Linux - usługa, skrypt lub cokolwiek innego - jest uważane za „proces.„Jeśli musisz zakończyć proces uruchamiania w Linux, zabić Polecenie z pewnością wykonuje zadanie.

W tym przewodniku dla administratorów Linuksa przejdziemy przez zabić Polecenie Linux i jak używać różnych opcji, aby zakończyć lub „zabić”, działający proces w Linux.

W tym samouczku nauczysz się:

  • Jak działa komenda zabójstwa?
  • Jak zobaczyć, jakie procesy działają
  • Jak zabić proces przez PID
  • Jak zabić proces, który odmawia zamknięcia
  • Jak zabić proces po imieniu
Jak zabić proces działający w Linux

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Ubuntu, Debian, Centos, Rhel, Fedora
Oprogramowanie Nic
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Jak działa komenda zabójstwa?

Przy nazwie takiej jak „Kill” można oczekiwać, że to narzędzie służy do natychmiastowego zakończenia procesu. Chociaż to prawda, zabić funkcjonuje tylko w ten sposób, gdy jest używany z niektórymi opcjami. Domyślnie, zabić spróbuje zatrzymać proces tak wdzięcznie, jak to możliwe.

W kategoriach technicznych, zabić wysyła Sigterm sygnał do określonego procesu, który instruuje proces zamknięcia. Jest to uprzejmy sposób na zakończenie procesu uruchamiającego i daje czas aplikacji lub usługi na zakończenie rzeczy najpierw - takie jak wykończenie pisania dziennika, zamknięte połączenia, które zostały spawnowane przez proces itp.



Jedynym problemem jest to, że uparty program może zignorować Sigterm sygnał. Dzieje się tak szczególnie w procesie zamrożonym lub „rozłączonym." Jednakże, zabić może być używany do wysyłania wielu różnych sygnałów do procesu, a nawet zmusić najbardziej uparte Sigkill sygnał. Przejdziemy te opcje w następnej sekcji.

Ważną rzeczą, którą należy odebrać z tych informacji, jest to, że w miarę możliwości powinieneś wysłać zwykły sygnał Sigterm do procesu, który chcesz zakończyć. Natychmiast zabijanie usługi za pomocą Sigkill Sygnał jest skuteczny za każdym razem i daje natychmiastowe wyniki, ale może powodować przyszłe problemy, ponieważ proces nie miał okazji poprawnie wyłączyć.

Jak zobaczyć, jakie procesy działają

Każdy proces w systemie Linux ma unikalny „identyfikator procesu”, powszechnie skrócony jako Pid w terminalu Linux. Czasami konieczna jest znajomość PID procesu, aby go zakończyć. Aby zobaczyć listę uruchomionych procesów i odpowiadające im liczby PID, użyj Ps Komenda:

# ps -e 

Może to przynieść wiele wyjściowych, ponieważ nawet nowa instalacja Linuksa może mieć sporo działających procesów, więc zwykle lepiej jest wypić to polecenie Grep Lub więcej.

Aby uzyskać łatwiejszy widok:

# ps -e | Więcej -15 


Lub szukać określonego procesu (w tym przykładzie SSH):

# ps -e | Grep Ssh 
Zdobądź PID procesu działającego

Kolejny poręczny sposób na zobaczenie listy uruchomionych procesów, a ich PIDS jest z szczyt Komenda. Czasami jest to jeszcze bardziej przydatne, ponieważ pokazuje również, ile zasobów systemowych są używane przez procesy.

Zobacz PID z Top Command

Jak zabić proces przez PID



Po ustaleniu PID procesu, który chcesz zakończyć, możesz określić go jako argument dla zabić Komenda. Na przykład, aby zakończyć proces PID 1234:

# Zabij 1234 

To polecenie wysyła Sigterm sygnalizować i powinien być w stanie wyłączyć większość procesów w ciągu sekundy lub dwóch. Pamiętaj, że możesz użyć Ps Poleć ponownie, aby sprawdzić, czy proces został pomyślnie zamknięty.

# ps -e | GREP 1234 

Jak zabić proces, który odmawia zamknięcia

Jeśli napotkałeś uparty proces, który odmawia zamknięcia, możesz wydać Sigkill sygnał z -9 opcja na zabić.



# Kill -9 1234 

Pamiętaj tylko, aby oszczędnie używać tej opcji, ponieważ nie jest to idealny sposób na zakończenie procesu (ale czasem musisz).

Normalnie, Sigterm I Sigkill są prawdopodobnie jedynymi dwoma sygnałami, których musisz użyć, ale jest wiele innych, które możesz wysłać z zabić Komenda. Następujące polecenie wyświetli pełną listę:

# Kill -l 
Lista sygnałów, które mogą zabić

Dobrze jest przynajmniej pamiętać o innych opcjach, ponieważ niektóre programy lub skrypty mogą zalecić ich użycie.

Jak widać na wyjściu, Sigkill jest wymieniony na nr 9, dlatego -9 przełącznik wysyła Sigkill sygnał. Określ inną liczbę, aby wysłać odpowiedni sygnał do procesu.



Jak zabić proces po imieniu

Istnieje szybszy sposób na zakończenie procesu niż konieczność poszukiwania jego pid za każdym razem. Użyj Pkill polecenie i nazwa procesu, który chcesz zabić. Na przykład, oto jak zabić SSH:

# PKILL SSH 

Pkill Polecenie jest w stanie wysyłać różne sygnały, podobnie jak regularne zabić Komenda:

# pkill -9 ssh 

Nie martw się też o uzyskanie dokładnej nazwy procesu. To polecenie zabiło proces o nazwie SSH-Agent, który działał w naszym systemie.



Używać jednej wady Pkill zamiast zabić. Powiedz, że masz dwa procesy SSH, „SSH-SERVER” i „SSH-AGENT”. Wydawanie powyższego polecenia z Pkill zakończy oba te procesy, nawet jeśli zamierzasz tylko zakończyć SSH-Agent.

Jest to również problem, jeśli masz wiele przypadków uruchomionego skryptu, odkąd mówi Pkill Aby zakończyć ten skrypt, zakończy wszystkie przypadki skryptu. Z drugiej strony czasami takie zachowanie może być preferowane. Jeśli potrzebujesz bardziej szczegółowej kontroli, pamiętaj tylko o wybraniu zabić Zamiast tego polecenie.

Wniosek

W tym artykule widzieliśmy, jak zabić każdy proces działający w systemie Linux za pomocą zabić Komenda. Nauczyliśmy się zabić proces albo jego pid, albo z nazwy, wraz z zaletami i wadami obu metod.

Z znajomością zabić polecenie i najlepsze praktyki, jak z niego korzystać, masz większą kontrolę nad procesami działającymi w systemie. Jest to szczególnie przydatne w przypadku programów, które „rozłączają się” i czasami odmawiają zamykania.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Podstawowe polecenia Linux
  • Jak propagować sygnał do procesów dziecka z bash…
  • Polecenia Linux: Top 20 najważniejsze polecenia, które musisz…
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 22.04 JAMMY Jellyfish…
  • Pobierz Linux
  • Zainstaluj Arch Linux na stacji roboczej VMware
  • Jak wydrukować drzewo katalogu za pomocą Linux