Czy kiedykolwiek spotkałeś się z sytuacją, w której musisz zatrzymać proces działający na określonym porcie komputera z systemem Linux?
Możesz się martwić, że uruchomiona aplikacja działa nieprawidłowo lub obciąża zasoby sieciowe lub moc lokalnego procesora. Taka aplikacja może nawet stanowić zagrożenie bezpieczeństwa, które chcesz wyeliminować.
Bez względu na przyczynę, możesz użyć poleceń fuser, lsofi netstatz terminala (wraz z kill), aby pomóc Ci znaleźć i zakończyć dowolny proces Linuksa przy użyciu numeru portu. Te polecenia będą działać w większości systemów operacyjnych Linux, w tym w Ubuntu.
Jak zabić proces systemu Linux za pomocą polecenia utrwalacza
Jednym z najłatwiejszych sposobów zakończenia procesu przy użyciu numeru portu jest użycie polecenia fuser. To Polecenie terminala Linux może wyświetlić lub zakończyć procesy uzyskujące dostęp do plików lub gniazd. Jeśli aplikacja działa z aktywnością sieciową (i dlatego korzysta z otwartego portu), prawdopodobnie wykonuje jedną z tych dwóch rzeczy.
Zanim przejdziesz dalej, upewnij się, że potrafisz swobodnie korzystać z terminala wiersza poleceń na komputerze z systemem Linux.
Aby wyświetlić listę procesów korzystających z numeru portu za pomocą fuser, możesz użyć następującej składni:
fuser -n port protokołu
W tym przykładzie protokółmoże mieć wartość tcplub udp, natomiast portto żądany numer portu sprawdzić. Na przykład, aby zobaczyć, które procesy korzystają z portu TCP 80, możesz uruchomić:
utrwalacz -n tcp 80
Spowoduje to wydrukowanie identyfikatorów procesów (PID) procesów korzystających z tego portu.
Aby zakończyć te procesy, możesz dodać opcję -kdo fuser. Spowoduje to wysłanie sygnału SIGTERM do każdego procesu z prośbą o łagodne zakończenie. Na przykład:
fuser -k -n tcp 80
To zakończy wszystkie procesy korzystające z portu TCP 80.
Jeśli niektóre procesy nie odpowiadają na SIGTERM, możesz użyć -KILLzamiast -k. Spowoduje to wysłanie sygnału „zabicia” (SIGKILL), który może pomóc w wymuszeniu natychmiastowego zakończenia aktualnie uruchomionych procesów, które zidentyfikowałeś. Może to jednak spowodować utratę lub uszkodzenie danych, dlatego używaj go ostrożnie. Na przykład:.
fuser -KILL -n tcp 80
To spowoduje zabicie wszystkich procesów korzystających z portu TCP 80 na siłę. Jeśli napotkasz jakiekolwiek problemy, uruchom te polecenia jako superużytkownik (używając polecenia sudo) lub używając zamiast tego użytkownika root.
Jak zabić proces systemu Linux za pomocą polecenia lsof
Innym sposobem zakończenia procesu przy użyciu numeru portu na komputerze z systemem Linux jest użycie polecenia lsof. To polecenie może wyświetlić listę otwartych plików i gniazd w systemie.
Aby wyświetlić listę procesów korzystających z określonego numeru portu, możesz użyć następującej składni:
lsof -i protokół:port
Tak jak poprzednio, protokółmoże mieć wartość tcplub udp, natomiast portto numer portu, z którego chcesz korzystać sprawdzać. Na przykład, aby zobaczyć, które procesy korzystają z portu TCP 53 (zwykle używanego do żądań DNS), możesz uruchomić to polecenie:
lsof -i tcp:53
Spowoduje to wydrukowanie informacji o każdym procesie korzystającym z tego portu, łącznie z jego identyfikatorem PID.
Aby zakończyć te procesy, możesz użyć opcji -tz lsof. Spowoduje to wydrukowanie tylko identyfikatorów PID procesów bez żadnych innych informacji. Następnie możesz przesłać to wyjście do polecenia killz dowolną opcją sygnału. Na przykład:
zabij $(lsof -t -i tcp:53)
Spowoduje to wysłanie sygnałów SIGTERM (domyślnie) do wszystkich procesów korzystających z portu TCP 53.
Jeśli niektóre procesy nie reagują na sygnały SIGTERM jak poprzednio, możesz użyć -9zamiast niczego po kill. Spowoduje to wysłanie sygnałów SIGKILL tak jak poprzednio, zmuszając je do natychmiastowego zakończenia, ale może również spowodować utratę lub uszkodzenie danych. Na przykład:
zabij -9 $(lsof -t -i tcp:53)
To wymusi wysłanie sygnałów SIGKILL (domyślnie) do wszystkich procesów korzystających z portu TCP 53.
Jak zabić proces systemu Linux za pomocą polecenia netstat
Możesz także użyć polecenia netstat, aby śledzić uruchomione procesy na komputerze z systemem Linux przy użyciu aktywnych i otwartych portów sieciowych. netstat umożliwia przeglądanie połączeń sieciowych i statystyk w systemie, co pozwala na wskazanie problematycznych procesów.
Aby wyświetlić listę procesów korzystających z numeru portu wraz z ich identyfikatorami PID, musisz dodać dwie opcje: -p, która pokazuje PID i -l, która pokazuje tylko gniazda odsłuchowe..
Musisz także określić protokół (tcp, udp itp.) i opcjonalnie filtrować według stanu (LISTEN itp.). Na przykład, aby zobaczyć, które procesy TCP nasłuchują na dowolnych portach, możesz uruchomić:
netstat -p tcp -l
Spowoduje to wydrukowanie informacji o każdym gnieździe TCP nasłuchującym na dowolnych portach, łącznie z jego identyfikatorem PID.
Aby filtrować według konkretnych portów, musisz dodać kolejną opcję: -n, która zamiast nazw pokazuje adresy numeryczne. Musisz także określić dokładny format adresu: [protocol][@hostname|hostaddr][:service|port].
Na przykład, aby zobaczyć, które procesy TCP nasłuchują na porcie 80, możesz uruchomić:
netstat -p tcp -l -n 80
Spowoduje to wydrukowanie informacji o każdym gnieździe TCP nasłuchującym na porcie 8080, łącznie z jego identyfikatorem PID.
Aby zakończyć te procesy, możesz użyć polecenia killz dowolną wybraną opcją sygnału i identyfikatorami PID uzyskanymi z netstat. Na przykład:
zabij 1234 5678
To spowoduje wysłanie sygnałów SIGTERM (domyślnie) do procesów o identyfikatorach PID 1234i 5678.
Jeśli niektóre procesy nie reagują na sygnały SIGTERM jak poprzednio, możesz użyć -9zamiast niczego po kill. Spowoduje to wysłanie sygnałów SIGKILL tak jak poprzednio, zmuszając je do natychmiastowego zakończenia, ale może spowodować utratę lub uszkodzenie danych, jak poprzednio. Na przykład:
zabij -9 1234 5678
To spowoduje na przykład silne wysłanie sygnałów SIGKILL do procesów o identyfikatorach PID 1234i 5678. Zastąp 1234poprawnym PID dla uruchomionego procesu.
Kontroluj swoje aplikacje linuksowe
Dzięki powyższym krokom możesz szybko zakończyć działający proces systemu Linux, używając numeru portu, korzystając z wiersza poleceń systemu Linux. Pamiętaj, aby zachować ostrożność podczas zabijania procesów, szczególnie w przypadku sygnałów SIGKILL, ponieważ mogą one powodować niepożądane skutki uboczne — w końcu nie chcesz powodować niestabilności systemu.
Chcesz dokładniej przyjrzeć się wydajności swojego systemu w systemie Linux? Następnie możesz chcieć sprawdź zużycie pamięci w systemie Linux. Jeśli martwisz się potencjalnym zagrożeniem bezpieczeństwa, możesz też chcieć zmień hasło w systemie Linux.
Musisz przejść na nową dystrybucję Linuksa? Jeśli jesteś początkujący, rozważ Linux Mint jest to bezpieczna i stabilna alternatywa..
.