Moja strona podręcznika nie dokumentuje różnicy między
kill <pid>
i
kill -9 <pid>
Ponieważ robią one różne rzeczy, dlaczego -9 nie jest udokumentowane na stronie kill
podręcznika? Pomyślałem, że może to są rzeczy specyficzne dla powłoki, więc też zajrzałem na stronę podręcznika użytkownika bash, ale bez powodzenia.
Dodatkowe pytanie: co robi -9?
kill <pid>
) to TERM.KILL
iSTOP
to tak zwane sygnały, których nie można złapać. Oznacza to, że gdyTERM
sygnał jest wysyłany do procesu, jest on w stanie go złapać i wykonać różne operacje „wyłączania”, które musi wykonać.KILL
Sygnał natychmiast zatrzymuje proces.man 7 signal
Domyślnym sygnałem jest TERM, który pozwala programowi zabić, aby go złapać i wykonać pewne czyszczenie przed wyjściem. Program może go również zignorować, jeśli jest napisany w ten sposób.
Podanie wartości -9 lub KILL, ponieważ sygnał nie pozwala programowi go złapać, wykonać czyszczenia lub zignorować. Powinien być stosowany tylko w ostateczności.
Aby zobaczyć listę liczb i nazw sygnałów w Bash, użyj
kill -l
(letter ell).źródło
Używam Ubuntu Linux.
Polecenia zabijania w zasadzie wysyłają sygnał do przetworzenia, aby go zakończyć. Aby uprościć złożone oczekiwania behawioralne codziennego obliczania, polecenie zabicia ma różne opcje.
Jak wyjaśniono powyżej ze wszystkimi opcjami numerów zabicia odpowiadającymi jego definicji.
Chciałbym dodać do niego kilka wierszy.
Jak widać powyżej, są to wszystkie opcje zabicia, które otrzymasz, jeśli uruchomisz system Ubuntu Linux.
Ale niektóre sygnały zabicia są wspólne dla wszystkich smaków * NIX.
kill -9 jest opcją SIGKILL, a jądro nie może zignorować tego sygnału, co oznacza, że honoruje tę opcję -9 lub SIGKILL i natychmiast kończy proces. Pamiętaj, że proces ten nie może być obsługiwany przez aplikacje.
Z drugiej strony kill -15 wyśle sygnał SIGTERM, co oznacza, że będzie czekał na całkowite zamknięcie procesu przed wyjściem. To jest sygnał domyślny.
źródło