2013-12-06 2 views
0

Выполнено ниже, чтобы убить java-процесс в системе linux.java <defunct> все еще присутствует даже после убийства всех java-процессов

ps -ef | grep java | grep -v grep | awk '{print $2}'| xargs kill -9

После этого, когда я проверил для запуска Java-процессов, я мог бы найти "[Java]" процесс до сих пор работает.

Как убить эти несуществующие процессы?

+0

[Zombie process] (http://en.wikipedia.org/wiki/Zombie_process) – devnull

+0

Получил решение: получить PPID, выполнив команду 'ps -ef | grep убывающий'. Затем уничтожьте PPID, который, в свою очередь, уничтожит PID процессов зомби. – user2496751

+1

Не используйте 'kill -9', кроме как в крайнем случае. Достаточно простого 'kill'. – chepner

ответ

0

Зомби (несуществующие) процессы мертвы. Все процессы в unix зависают после их смерти, пока их родительский процесс не запросит их статус возврата. В большинстве случаев это происходит мгновенно, поэтому вы никогда не увидите, что этот процесс является зомби. Но если родительский процесс зависает или останавливается, он не может освободить свои мертвые дочерние процессы, чтобы они зависали как зомби.

0

Несмотря на то, что неработающие процессы убиты командой kill -9, дескрипторы сеанса останутся с терминальным окном. Если мы выйдем из системы и запустим пароль, который очистит все сеансовые дескрипторы

Смежные вопросы