Porady Admina: killall
Ostatnia aktualizacja: 15 września 2023, 20:06
W dzisiejszym tutorialu z cyklu Porady Admina zajmiemy się programem killall.
killall wysyła sygnał do procesów. Jeśli nie podano nazwy sygnału, wysyłany jest SIGTERM.
Sygnały mogą być określone przez nazwę (np. -HUP lub -SIGHUP) lub przez liczbę (np. -1) lub opcję -s. Jeśli nazwa polecenia nie jest wyrażeniem regularnym (opcja -r) i zawiera ukośnik (/), zostaną wybrane procesy wykonujące ten konkretny plik za zabijanie, niezależnie od ich imienia. Proces killall nigdy nie zabija sam siebie, ale może zabijać inne procesy killall.
killall jest częścią pakietu psmisc.
Opcje
-e,–exact : wymaganie dokładnego dopasowania dla bardzo długich nazw
-I,–ignore-case : dopasowywanie nazw procesów niewrażliwe na wielkość liter
-g,–process-group : zabicie grupy procesów zamiast procesu
-y,–younger-than : zabicie procesów młodszych niż CZAS
-o,–other-than : zabicie procesów starszych niż CZAS
-i,–interactive : pytanie o potwierdzenie przed zabiciem
-l,–list : wypisanie wszystkich znanych nazw sygnałów
-q,–quiet : nie wyświetlanie narzekań
-r,–regexp : użycie NAZWY jako rozszerzonego wyrażenia regularnego
-s,–signal SYGNAŁ : wysłanie podanego sygnału zamiast SIGTERM
-u, –user UŻYTKOWNIK : zabicie tylko procesów działających jako podany użytkownik
-v,–verbose : informowanie czy wysłanie sygnału powiodło się
-V,–version : wyświetlenie informacji o wersji
-w,–wait : zaczekanie na śmierć procesów
-n,–ns PID : dopasowanie procesów należących do przestrzeni nazw PID-u
-Z,–context REGEXP : zabicie tylko procesu(ów) mających dany kontekst bezp. (musi poprzedzać inne argumenty)
Składnia
killall OPCJE PROGRAM/PID
Przykłady
Aby zabić program, który się zawiesił, uruchomiony przez użytkownika, np. Thunar
killall -9 thunar
Aby zabić program, uruchomiony przez system lub admina, np. top
sudo killall -9 top
Użyj narzędzia, takiego jak htop lub top, aby wyświetlić listę procesów w czasie rzeczywistym i ich zużycie zasobów systemowych.
Użyj polecenia ps, aby wyświetlić aktualnie uruchomione procesy i ich identyfikatory PID. Poniższy przykład filtruje listę wszystkich aktualnie uruchomionych procesów dla łańcucha nano za pomocą grep:
ps aux | grep nano
root 25577 0.0 0.0 11380 4480 pts/1 S+ 16:28 0:00 nano sparky.xml
pavroo 25595 0.0 0.0 8956 2304 pts/2 S+ 16:28 0:00 grep nano
Liczba wymieniona w drugiej kolumnie od lewej to PID, który w przypadku procesu nano wynosi 25577. Proces grep zawsze dopasuje się do prostego wyszukiwania, jak w drugim wyniku.
Inną opcją znalezienia PID jest użycie pgrep.
pgrep nano
25577
Aby zabić proces używając jego PID
killall -n 25577
Dodanie opcji -w do polecenia killall powoduje, że killall czeka, aż proces się zakończy.
killall -w nano
Więcej informacji o programie killall uzyskasz poleceniami:
man killall
killall --help