Отличие в том, что orphan process (процесс-сирота) всё еще активен. Суть в том, что его родительский процесс был по какой-либо причине прерван, и сирота теперь переходит под руководство init, чей ID процесса равен 1. PID orphan процесса получит значение 1. Пользователь также может создать подобный процесс, отсоединив его от терминала. Сиротские процессы используют много ресурсов, их легко найти с помощью top или htop. Чтобы удалить процесс, используйте kill -9 PID.
В отличии от процесса-сироты, zombie processes (зомби-процесс) неактивен, но контролируется родительским процессом, пока тот не решит, что статус выхода дочерних процессов больше не нужен. Он не использует ресурсы и не может быть запланирован для выполнения. Иногда родительский процесс удерживает дочерний процесс в состоянии зомби, чтобы гарантировать, что будущие дочерние процессы не получат тот же PID. Если вы уничтожите родителя зомби-процесса, зомби-процесс тоже умрет. Для этого найдите родительский PID (PPID) зомби и отправьте ему сигнал SIGCHLD (17): kill -17 ppid.
На стэк оверфлоу предлагали такую конструкцию что бы убивать зомби-процессы
kill $(ps -A -ostat,ppid | awk '/[zZ]/ && !a[$2]++ {print $2}')