Аргумент -9 (или KILL) для команды kill следует использовать в POSIX-совместимых системах только в случае крайней необходимости. Почему? Сигнал KILL не может быть обработан процессом. Это означает, что после завершения процесса с помощью kill -9, дочерние процессы останутся в памяти и станут «осиротевшими» (orphaned), файловая система окажется засорена временными файлами, сегменты совместно используемой памяти — активными, сокеты — зависшими, а функция atexit(3) вообще не будет выполнена. В результате есть риск столкнуться с неожиданными и сложными для отладки проблемами.
с хабра.
Не совсем верно. Если в диспозиции сигналов будет SIG_IGN на сисколл SIG_CHILD на чилда, то при завершении чилда - он всегда усыновляется пидом 1(даже если родитель еще работает). Более того, при киле -9 все кернелевые ресурсы этого процесса высвобождаются ядром. Про ошметки в системе - там много нюансов. Сегменты памяти - если разговор про позикс шаред мемори - высвободаются, если нет больще пидов, с открытым файловым дескриптором на эти участки.