Дети связаны через свой ppid ( parent pid ) с родителем, поэтому нужно просто следовать этим ссылкам, в зависимости от того, какой язык вы используете для его реализации. Команда pstree
использует это для отображения дерева процессов.
Что касается "надежного", вы должны обрабатывать процессы, возникающие и исчезающие постоянно, лучше всего сделать снимок запущенных процессов как можно быстрее, и только затем анализировать данные.