Android

Polecenie Kill w systemie Linux

Linux kill command summary with examples

Linux kill command summary with examples

Spisu treści:

Anonim

Linux to świetny i zaawansowany system operacyjny, ale nie jest doskonały. Od czasu do czasu niektóre aplikacje mogą zachowywać się nieprawidłowo i przestać odpowiadać lub zużywać dużo zasobów systemowych. Nie można ponownie uruchomić niereagujących aplikacji, ponieważ pierwotny proces aplikacji nigdy nie zamyka się całkowicie. Jedynym rozwiązaniem jest ponowne uruchomienie systemu lub zabicie procesu aplikacji.

Istnieje kilka narzędzi, które pozwalają ci zakończyć błędne procesy, kill najczęściej używane.

kill Command

kill to powłoka wbudowana w większość powłok pochodzących z Bourne'a, takich jak Bash i Zsh. Zachowanie polecenia różni się nieznacznie między powłokami a samodzielnym plikiem wykonywalnym /bin/kill .

Użyj polecenia type aby wyświetlić wszystkie lokalizacje w systemie zawierające kill :

type -a kill

kill is a shell builtin kill is /bin/kill

Powyższe dane wyjściowe mówią, że wbudowana powłoka ma wyższy priorytet niż samodzielny plik wykonywalny i jest używana za każdym razem, gdy wpiszesz polecenie kill . Jeśli chcesz użyć pliku binarnego, wpisz pełną ścieżkę do pliku /bin/kill ., użyjemy wbudowanego Bash.

Składnia polecenia kill ma następującą postać:

kill…

Polecenie kill wysyła sygnał do określonych procesów lub grup procesów, powodując, że działają zgodnie z sygnałem. Gdy sygnał nie jest określony, domyślnie jest to -15 (-TERM).

Najczęściej używane sygnały to:

  • 1 ( HUP ) - Przeładuj proces. 9 ( KILL ) - Zabij proces. 15 ( TERM ) - Z wdziękiem zatrzymaj proces.

Aby uzyskać listę wszystkich dostępnych sygnałów, wywołaj polecenie z opcją -l :

kill -l

Sygnały można określić na trzy różne sposoby:

  1. Używanie numeru (np. -1 lub -s 1 ).Używanie prefiksu „SIG” (np. -SIGHUP lub -s SIGHUP ) -SIGHUP prefiksu „SIG” (np. -HUP lub -s HUP ).

Następujące polecenia są sobie równe:

kill -1 PID_NUMBER kill -SIGHUP PID_NUMBER kill -HUP PID_NUMBER

Identyfikatory PID podane dla polecenia kill mogą być jednym z następujących:

  • Jeśli PID jest większy od zera, sygnał jest wysyłany do procesu o ID równym PID Jeśli PID jest równy zero, sygnał jest wysyłany do wszystkich procesów w bieżącej grupie procesów. Innymi słowy, sygnał jest wysyłany do wszystkich procesów należących do GID powłoki, która wywołała polecenie kill . Użyj komendy ps -efj aby wyświetlić identyfikatory grup procesów (GID). Jeśli PID jest równy -1 , sygnał jest wysyłany do wszystkich procesów o tym samym UID, co użytkownik wywołujący polecenie. Jeśli użytkownik wywołujący jest rootem, sygnał jest wysyłany do wszystkich procesów oprócz init i samego procesu kill Jeśli PID jest mniejszy niż -1 , sygnał jest wysyłany do wszystkich procesów w eq grupy procesów o GID równym wartości bezwzględnej PID .

Zwykli użytkownicy mogą wysyłać sygnały do ​​własnych procesów, ale nie do tych, które należą do innych użytkowników, podczas gdy użytkownik root może wysyłać sygnały do ​​procesów innych użytkowników.

Kończenie procesów za pomocą polecenia kill

Aby zakończyć lub zabić proces za pomocą komendy kill , najpierw musisz znaleźć numer identyfikacyjny procesu (PID). Możesz to zrobić za pomocą różnych poleceń, takich jak top , ps , pidof i pgrep .

Powiedzmy, że przeglądarka Firefox przestała odpowiadać i musisz zabić proces Firefox. Aby znaleźć PID przeglądarki, użyj polecenia pidof :

pidof firefox

Polecenie wyświetli identyfikatory wszystkich procesów Firefox:

6263 6199 6142 6076

Gdy poznasz numery procesów, możesz zakończyć je wszystkie, wysyłając sygnał TERM :

kill -9 2551 2514 1963 1856 1771

Zamiast szukać PID, a następnie przerywać procesy, możesz połączyć powyższe polecenia w jedno:

kill -9 $(pidof firefox)

Przeładowywanie procesów za pomocą polecenia kill

Innym częstym przypadkiem użycia kill jest wysłanie sygnału HUP , który informuje procesy o ponownym załadowaniu jego ustawień.

Na przykład, aby ponownie załadować Nginx, musisz wysłać sygnał do procesu głównego. Identyfikator procesu głównego procesu Nginx można znaleźć w pliku nginx.pid , który zazwyczaj znajduje się w katalogu /var/run .

Użyj polecenia cat aby znaleźć główny identyfikator PID:

cat /var/run/nginx.pid

30251

Po znalezieniu głównego PID ponownie załaduj ustawienia Nginx, wpisując:

sudo kill -1 30251

Powyższe polecenie należy uruchomić jako użytkownik root lub użytkownik z uprawnieniami sudo.

Wniosek

Polecenie kill służy do wysyłania sygnału do procesów. Najczęściej stosowanym sygnałem jest SIGKILL lub -9 , który kończy dane procesy.

zabić terminal