Nie można zabić procesu Java

3

Mam proces Java, którego nie można zabić. Wypróbowałem każdą metodę, którą znam, lub którą znalazłem w Internecie bezskutecznie. Próbowałem:

killall java
kill -9 <pid>
kill -11 <pid>
kill -6 <pid> 

Bez względu na to, co spróbuję, nie mogę zabić programu. Jeśli to pomaga, ma dynamiczny PID, a zdarzyło się to wcześniej, a ja jakoś go zabiłem po raz ostatni.

Howard Stark
źródło
czy jesteś pewien, że używasz prawidłowego PID?
amfibia
Czy jesteś pewien, że program wciąż żyje, a nie zombie? BTW: Zwykle nie ma powodu do kill -9procesu. Wysłanie a SIGTERMnastępnie SIGQUITlub SIGINTpowinno zakończyć program. Jeśli nie, to jest wadliwy.
Marco
3
Warto również zauważyć, że często niemożliwe jest zabicie procesów, które obecnie czekają na We / Wy.
zadzwonić
Nie zgadzaj się z Marco w sprawie wartości użytkowej SIGKILL i twierdzenia, że ​​program, który reaguje na to, ale nie SIGTERM, jest „błędny”. 0,02 USD
goldilocks
1
@goldilocks Program nie może odpowiedzieć na SIGKILL. Zwykle chcesz dać programowi zmianę, aby wyczyścił (zamknij pliki, połączenia sieciowe itp.), A następnie zamknij i do tego właśnie służy SIGTERM. Jeśli powiesz programowi, aby zakończył działanie i odmówi, to błąd! SIGINT lub SIGQUIT nie powinny być konieczne, ale niektóre programy reagują na sygnały i wychodzą natychmiast. SIGKILL przydaje się tylko wtedy, gdy chcesz zapobiec czyszczeniu programu lub w rzadkich przypadkach utknął w kodzie czyszczenia.
Marco

Odpowiedzi:

2

Procesy kończą się w stanie D (nieprzerwany sen), ale nie można ich zabić. Możesz to sprawdzić za pomocą:

ps -o cmd,stat -p <pid>

Jeśli STAT jest D, to jest problem.

Jeśli nie, sugeruję, abyś dodał więcej informacji do swojego postu, takich jak dokładnie proces, co robi i dlaczego chcesz go zabić.

Złotowłosa
źródło
1
W większości przypadków jest to spowodowane wadliwym sprzętem, błędem jądra lub problemami z pamięcią sieciową, taką jak NFS.
jordanm
Tak - możliwa przyczyna byłaby awaria dysku twardego. Jeśli gdzieś są złe bloki, środowisko JRE szczególnie chce uzyskać dostęp, to by to zrobiło.
goldilocks