Linux: jak zabić proces za pomocą poleceń terminalowych

Wyobraź sobie: uruchomiłeś program, pracujesz z nim i po jakimś czasie przestaje odpowiadać na żądania i zawiesza się. Ponowne uruchomienie aplikacji jest niemożliwe, ponieważ jej kopia nadal pozostaje w pamięci komputera. Co robić w tym przypadku? Przede wszystkim należy zamknąć program i usunąć proces z pamięci. Najprostszym i najbardziej uniwersalnym sposobem na zabicie procesu w Linuksie jest użycie poleceń terminalowych. Ta opcja działa w każdej dystrybucji Linuksa.

Procesy w systemie Linux

W systemie operacyjnym Linux proces ten jest zwykle nazywany uruchomionym programem lub programem. Ponadto proces można nazwać dowolnym zadaniem, które aktualnie korzysta z systemu Linux. Każdy uruchomiony proces może uruchomić dziecko.


Wszystkie procesy działające pod Linuksem mają następujące atrybuty:
  • PID jest unikalnym identyfikatorem dla każdego procesu.
  • PPID jest identyfikatorem procesu nadrzędnego.
  • Identyfikator użytkownika, który uruchomił proces.
  • Priorytet.
  • Status procesu.
  • Każdy uruchomiony proces jest w jednym ze stanów:
  • "Wykonanie". Do wskazania tego stanu używana jest litera R.
  • Proces, który uruchomił działanie systemu, na przykład dane wejściowe lub wyjściowe, i czeka, kiedy zostanie zakończony, jest nazywany "oczekiwaniem". Dotknięta literą S.
  • Proces zatrzymany przez użytkownika lub system operacyjny Linux jest "Zatrzymany". Ten stan jest oznaczony symbolem T.
  • "Zombie" to procesy, których już nie maWykonywalne, ale zużywające zasoby systemu operacyjnego. Oznaczono literą Z.
  • Proces ciągły można zakończyć do momentu zakończenia operacji bezpośredniego dostępu w pamięci. Proces ten jest oznaczony przez D.
  • Wyszukiwanie procesu

    Przed próbą zabicia procesu, musisz go najpierw znaleźć. Często w tym celu Linux używa dwóch poleceń top i ps.


    Użycie polecenia górnego

    Polecenie u góry wyświetla pełną listę bieżących procesów. Ponadto lista zawiera wiele użytecznych informacji o każdym uruchomionym procesie, na przykład:
  • PID - unikalny numer procesu;
  • USER to login użytkownika, który uruchomił ten proces;
  • PR - priorytet procesu w danym czasie;
  • NI - priorytet przypisany procesowi przez zespół NICE;
  • S jest stanem tego procesu;
  • % procesora - ile czasu procesora zajmuje ten proces (w procentach);
  • % MEM - ilość pamięci RAM, którą zajmuje ten proces (w procentach);
  • TIME + - ile czasu upłynęło od rozpoczęcia procesu;
  • COMMAND - program, który uruchomił proces.
  • Informacje dostarczone przez polecenie górne są wyświetlane posortowane według poziomu użytego procesora (kolumna% CPU). Użytkownik może zmienić kolejność sortowania:
  • sortować procesy według ilości zajętej pamięci (kolumna% MEM) należy nacisnąć kombinację klawiszy Shift + M;
  • można sortować według numeru procesu (kolumna PID) za pomocą kombinacji Shift + N;
  • sortuj według czasu (kolumna TIME +) - Shift + T.
  • powrót dosortowanie początkowe według poziomu obciążenia procesora - naciśnij kombinację Shift + P.

    Korzystanie z polecenia ps

    Za pomocą polecenia głównego można uzyskać wiele niezbędnych informacji, ale nie jest to najwygodniejszy sposób uzyskania potrzebnych informacji o wybranym procesie. Możesz użyć polecenia ps i przefiltrować listę za pomocą polecenia greep, aby uniknąć szukania pożądanego procesu. Na przykład, jeśli chcesz znaleźć wszystkie procesy związane z uruchomioną przeglądarką Opera, możesz wpisać komendę ps axu | grep Mozilla.
    Komenda ps ma następujące parametry:
  • a - pokazuje procesy dla wszystkich użytkowników;
  • u - wyświetlać użytkownika, który jest właścicielem procesu;
  • x - pokazuje procesy, które nie są związane z terminalem. Ta opcja jest ważna przy wyszukiwaniu informacji o aplikacji graficznej.
  • Używając łącza poleceń ps i grep, możesz uzyskać wszystkie informacje potrzebne do zniszczenia skróconej aplikacji.

    Inne sposoby wyszukiwania procesu

    Aby znaleźć proces PID według jego nazwy, dostępne jest polecenie pidof. Format jego użycia jest następujący: pidof + nazwa programu. Na przykład, aby znaleźć wszystkie PID, które należą do programu Opera, musisz wprowadzić pidof Opera. W niektórych przypadkach program zakończył wykonywanie, ale nie zwolnił portu sieciowego. Aby uzyskać informacje, że w tym przypadku musisz wprowadzić polecenie utrwalacz: fuser -vn tcp 80. Gdzie 80 to numer wiszącego portu. Po tym możesz zabić proces Linuksa na porcie.

    Kończenie procesu za pomocą komendy kill

    Po poznaniu procesu PID i jego nazwy możnauruchom operację, aby ukończyć niepotrzebny program. Aby to zrobić, użyj dwóch komend: kill - zabij proces id Linux i killall - uzupełnij program o nazwę.
    Struktura polecenia kill: kill SIGNAL PID. Gdzie SIGNAL jest sygnałem do wysłania, a PID jest identyfikatorem procesu.
    Parametr SIGNAL zakończenia procesu wynosi 9 (SIGKILL). Tak więc, aby zabić proces pid w pidzie z Linuksem, musisz wprowadzić polecenie: kill -99578. Gdzie 9578 jest unikalnym numerem procesu. Polecenie zakończenia nie jest jedynym, które można wysłać za pomocą aplikacji do zabijania systemu. Uzyskaj listę wszystkich poleceń, które można wysłać do polecenia za pomocą polecenia kill, wpisując komendę kill -l.
    ​​Przydatne jest również poznanie innych wartości akceptowanych przez parametr SIGNAL. Na przykład możesz użyć parametru HUP, aby ponownie załadować skrócony program. Sygnał SIGTERM nie przerywa natychmiastowo programu, ale zapewnia czas na prawidłowe zamknięcie, tzn. Program zapisuje dane, wykonuje je i uwalnia wszystkie zasoby, które są zajęte.

    Jak zabić proces w systemie Linux według nazwy

    Jeśli znasz nazwę programu, który chcesz uruchomić, możesz użyć komendy killall. Na przykład, aby zniszczyć wszystkie procesy związane z aplikacją Opery, musisz wpisać polecenie: killall -9 Opera.
    Jednak ten zespół nie zawsze kończy procesy związane ze zniszczonym programem. Jeśli po wykonaniu powyższego polecenia wpisujesz kombinację ps aux | grep Opera i zobacz, że niektóre procesy wciąż działają, najlepiej zakończyć je zabiciem systemu. WW niektórych przypadkach zabicie procesu uruchomionego na Linuksie przez innego użytkownika może wymagać uprawnień administratora. Następnie, przed zakończeniem polecenia, musisz wprowadzić polecenie sudo. Oto wszystkie informacje potrzebne użytkownikowi do zarządzania procesami. To prawda, że ​​ten temat nie jest łatwy dla początkujących, ale trzeba go opanować, ponieważ wszystkie działania systemu operacyjnego są przeprowadzane za pośrednictwem procesów. Aby dowiedzieć się, jak nimi zarządzać, musisz trochę popracować.

    Powiązane publikacje