Comment attendre de tous les enfants (et petits-enfants, etc) processus engendré par un script

Contexte:

Utilisateurs de me fournir leurs scripts à exécuter. Ces scripts peuvent être de toute sorte tels que des scripts pour démarrer plusieurs programmes graphiques, des services back-end. Je n'ai pas de contrôle sur la façon dont les scripts sont écrits. Ces scripts peuvent être de blocage de type c'est à dire l'exécution attend jusqu'à ce que tous les processus enfants (des programmes qui sont exécutés séquentiellement) sortie

#exaple of blocking script
echo "START"
first_program 
second_program 
echo "DONE"

ou non le blocage de type c'est à dire ceux que la fourche de l'enfant dans le processus d'arrière-plan et la sortie de quelque chose comme

#example of non-blocking script
echo "START"
first_program &
second_program &
echo "DONE"

Que suis-je en train de réaliser?

Utilisateur à condition que les scripts peuvent être de n'importe quel de ces deux types ou mélange des deux. Mon travail consiste à exécuter le script et attendre jusqu'à ce que tout le processus a commencé par la sortie, puis l'arrêt du nœud. Si son de blocage de type, le cas est clair simple c'est à dire obtenir le PID du script processus d'exécution, et attendre jusqu'à ce ps -ef|grep -ef PID n'a pas plus d'entrées. Non-blocage des scripts sont ceux de me donner de la difficulté à

Est-il une manière que je peux obtenir la liste des Pid de tout le processus de l'enfant engendré par l'exécution d'un script? Tous les pointeurs ou conseils seront très appréciés

Si j'étais vous, je venais de passer un paramètre unique, quand j'ai commencé le processus enfant que vous pourriez grep pour plus tard, et qui sera ignoré par le processus de l'enfant.
Merci pour votre réponse, mais je n'ai pas de contrôle sur la façon dont les scripts sont écrits

OriginalL'auteur Ram | 2013-09-06