L'exécution de script bash n'est pas de retour à la borne lors de l'utilisation de l'esperluette (&) pour exécuter un sous-processus en arrière-plan

J'ai un script (permet de l'appeler parent.sh) cela fait 2 appels pour un second script (child.sh) qui exécute un processus java. L'child.sh les scripts sont exécutés en arrière-plan en plaçant un & à la fin de la ligne parent.sh. Cependant, lorsque je lance parent.sh, j'ai besoin d'appuyer sur Ctrl+C pour revenir à l'écran du terminal. Quelle est la raison? Est-il quelque chose à voir avec le fait que l'child.sh des processus sont en cours d'exécution en vertu de la parent.sh processus. De sorte que le parent.sh ne pas mourir jusqu'à ce que l'enfant?

parent.sh

#!/bin/bash
child.sh param1a param2a &
child.sh param1b param2b &
exit 0

child.sh

#!/bin/bash
java com.test.Main 
echo "Main Process Stopped" | mail -s "WARNING-Main Process is down." user@email.com    

Comme vous pouvez le voir, je ne veux pas courir le processus java dans le fond, car je veux envoyer un mail lorsque le processus meurt. Faire comme ci-dessus fonctionne très bien à partir d'un point de vue fonctionnel, mais je voudrais savoir comment je peux obtenir un retour à la borne après l'exécution de parent.sh.

Est-il nécessaire de ctrl-c ou n'appuyer sur la touche enter vous obtenez une invite de trop? Ce n' ps dire est en cours d'exécution au moment où vous appuyez sur ctrl-c?
Est le programme java s'attend à aucun d'entrée? Il aide si vous la changez pour java com.test.Main < /dev/null?
Ajouter un > /dev/null à la fin de la ligne avec mail. mail dans le cas contraire, essayez de démarrer son mode interactif.
si on prend l'entrée, comment vous attendez-vous à un fond d'elle-même? Il a nécessairement un terminal de contrôle de la poignée.
@CharlesDuffy dit, si le script prend en entrée comment peut-il être exécuté en arrière-plan? Où est-ce qu'il va obtenir son entrée? Vous n'êtes pas fournir tout (et vous le tuez avec ctrl-c, j'imagine que vous devez le frapper deux fois en fait).

OriginalL'auteur theGuardian | 2015-02-02