Что такое <defunct> процесс и почему он не уничтожается?

Страница руководства ps(1) гласит:

Процессы, отмеченные <defunct> являются мертвыми процессами (так называемые "зомби"), которые остаются, потому что их родитель не уничтожил их должным образом. Эти процессы будут разрушены init(8) если родительский процесс завершается.

Вы не можете убить его, потому что он уже мертв. Единственное, что осталось, это запись в таблице процессов:

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

Нет ничего плохого в том, чтобы позволить таким процессам существовать, если только их не будет много. Зомби в конечном итоге пожинается его родителем (вызывая wait(2)). Если исходный родитель не получил его до своего собственного выхода, то init процесс (pid == 1) делает это в более позднее время. Процесс зомбирования это просто:

Процесс, который завершился и который удаляется, когда о его статусе завершения сообщается другому процессу, который ожидает завершения этого процесса.