Как с помощью ps найти основной дочерний процесс?
S : процесс ожидает (т.е. спит менее 20 секунд)
s : лидер сессии
Обычно, проверка на то что программа уже запущена, делается через создание т.н. lock файла.
Вам нужно в начале работы скрипта проверить - создан ли файл.. ну например /var/www/site/manage.lock
если да, то завершить программу т.к. уже работает другой процесс,
если нет - создать такой файл, продолжить выполнение программы, а перед завершением удалить файл.

Если говорить об определении дочерних процессов, то у ps богатые возможности по фильтрации и форматированию вывода. Получить PID дочерних процессов зная PID родительского можно вот так:
ps --ppid=1234 -o pid