Jak zabić proces działający w Linux
- 583
- 160
- Tacjana Karpiński
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
Zastosowane wymagania i konwencje oprogramowania
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 SshZdobą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.
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 -lLista 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
- « Jak sprawdzić i monitorować wykorzystanie procesora w Linux
- Jak ulepszyć Debian 9 odcinek do Debian 10 Buster »