Jak zabić proces, który nie umrze?

18

Nie jestem w stanie zabić procesu przy użyciu żadnej znanej mi techniki („Wymuś zamknięcie” w Monitorze aktywności top, killallz terminala) i zastanawiam się, czy mogę podjąć dodatkowe kroki.

wprowadź opis zdjęcia tutaj

~ $ sudo killall -KILL 77439
Password:
No matching processes were found
~ $ killall -KILL 77439
No matching processes belonging to you were found
~ $ killall 77439
No matching processes belonging to you were found
~ $ killall Mathematica
No matching processes belonging to you were found

FWIW procesem jest „Mathematica”, którego nie mogę ponownie uruchomić, zamknąć lub wymusić, albo próbkować, według nazwy lub PID, i wydaje się, że ma pewne dziwne efekty uboczne (zrzuty ekranu nie pojawiają się, nie można opróżnić kosza i nie może nawet zamknąć systemu).

Czy można podjąć dodatkowe kroki, aby naprawdę zabić źle zachowany proces?

orome
źródło
Czy możesz znaleźć ten proces za pomocą polecenia top w terminalu?
Pierobon
1
Następnym razem, gdy ten problem wystąpi, dodaj wynik ps alx | egrep '[ /](PID|Math)'do pytania.
dan
@danielAzuelos: Dobra wskazówka. Zrobię
orome

Odpowiedzi:

35

killallzabija według nazwy procesu (która definitywnie nie ma 77439 i najprawdopodobniej także nie Mathematica). Zamiast tego możesz użyć kill 77439lub (jeśli to się nie powiedzie) kill -9 77439(ale jeśli proces jest naprawdę zablokowany, tylko ponowne uruchomienie rozwiąże problem).

Ponadto, ze względu na sposób, w jaki wysyłanie / przetwarzanie sygnałów (jak kill -9) działa w systemie Unix / OS X, zdarzają się sytuacje, w których proces będzie niemożliwy do zabicia. Jednym typowym przykładem tego jest sytuacja, w której proces blokuje się podczas uzyskiwania dostępu do jakiegoś urządzenia zewnętrznego i nigdy nie odzyskuje kontroli. W takich sytuacjach ponowne uruchomienie jest jedynym sposobem na pozbycie się procesu.

nohillside
źródło
2
Zabójcze dźwięki brzmią tak, jak powinny, ale tak naprawdę powinny być nazywane „wysyłaj sygnał przerwania”, ponieważ istnieje wiele różnych rodzajów zabójstw, które może wykonać. Używanie parametrów -9zasadniczo wykorzystuje najpotężniejszą formę zakończenia z dostępnymi skrajnymi uprzedzeniami ...
stuffe
1
$ kill -9 PID zawsze robi mi lewę, nawet jeśli jest to tak bardzo inwazyjne.
Pierobon
Wygląda więc na to, że Mathematica jest po prostu wyjątkowo źle zachowana. W końcu musiałem wymusić wyłączenie (zawieszone regularne wyłączenie). Nie mam tego problemu z żadną inną aplikacją, ale Mathematica miał go więcej niż raz.
orome
Oto kilka szczegółowych informacji na temat tego, co może powodować blokowanie procesów.
GDP2
Zaraz zabiję -9. Jedyny raz, kiedy wystąpił błąd „sudo kill -9”, był w systemie, który został całkowicie zepsuty i mimo wszystko wymagał ponownego uruchomienia.
MikeP,
-3

W systemie macOS Mojave 10.14 Beta 1 musiałem wykonać następujące czynności, aby uzyskać przyczepność:

sudo xcscontrol --reset   
Ed Salter
źródło
2
Co to dokładnie robi / dlaczego jest potrzebne?
pkamb
xcscontroljest kontrola Xcode Server i wydaje się, że nie ma żadnej korelacji z źle zachowanym procesem?
Matt Sephton,