killall

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

killall jest to polecenie konsoli Uniksa wywołujące polecenie kill dla wszystkich procesów mających w nazwie tekst podany jako argument.

Składnia[edytuj | edytuj kod]

killall [-eiqvw] [-sygnał] nazwa
killall -l
killall -V

Opis[edytuj | edytuj kod]

killall wysyła sygnał do wszystkich procesów wymienionych w linii poleceń. Jeżeli nie podano nazwy sygnału, wysyłany jest sygnał SIGTERM.

Sygnały mogą być określane za pomocą nazwy (np. -HUP) lub numeru (np. -1). Sygnał 0 (sprawdzenie, czy proces istnieje) może być podany tylko za pomocą numeru.

Jeżeli nazwa polecenia zawiera ukośnik (/), sygnał wysyłany będzie do procesów wykonujących to polecenie, niezależnie od ich nazwy.

killall zwraca niezerowy kod wyjścia, jeżeli żaden proces nie został zabity (zakończony). Jeżeli dla każdego podanego polecenia zabity został przynajmniej jeden proces, zwracany jest kod zero.

Proces killall nigdy nie zabija samego siebie, chociaż może zabić inne procesy killall.

Opcje polecenia[edytuj | edytuj kod]

argument znaczenie
-e wymuś dokładne dopasowanie dla bardzo długich nazw. Jeżeli nazwa polecenia jest dłuższa niż 15 znaków, jej pełna postać może być niedostępna. W tym przypadku killall zabije wszystkie procesy, dla których nazwa polecenia zgadza się z podaną w pierwszych 15 znakach. Po podaniu opcji -e takie procesy są pomijane. Program informuje o każdym takim przypadku, jeżeli dodatkowo podano opcje -v.
-i pytaj o zgodę przed zabiciem każdego procesu.
-l wypisz wszystkie znane nazwy sygnałów.
-q nie wypisuj odnośnego komunikatu gdy nie zabito żadnego procesu.
-v wypisuj komunikat o każdym udanym wysłaniu sygnału.
-V wypisz informacje o wersji programu.
-w zaczekaj, aż wszystkie zabite procesy zakończą działanie. killall sprawdza co sekundę, czy któryś z zabitych procesów jeszcze istnieje i kończy działanie dopiero, gdy wszystkie skończą prace. Zauważ, że killall może czekać bez końca gdy sygnał został zignorowany, nie zadziałał lub proces przeszedł do stanu zombie.

Znane problemy[edytuj | edytuj kod]

Zabijanie procesów na podstawie nazwy pliku działa tylko wtedy, gdy plik wykonywalny jest podczas wykonywania w stanie otwartym.

Wydanie polecenia killall nazwa może nie działać zgodnie z oczekiwaniami na nie-Linuksowych systemach, zwłaszcza, gdy zostanie ono wydane przez uprzywilejowanego użytkownika(np. na Solaris polecenie to, bez parametrów, zatrzymuje wszystkie aktywne procesy).

killall -w nie wykrywa sytuacji, w której proces znika i zostaje zastąpiony przez inny z tym samym numerem PID.

Linki zewnętrzne[edytuj | edytuj kod]