J'ai un shell parent qui appelle un shell enfant comme processus d'arrière-plan. Dans le shell enfant, j'envoie une sortie au parent, il est nécessaire de capturer le statut de l'enfant dans le processus parent. J'utilise la commande "jobs" pour la même chose. Je suis capable de capturer l'état de fonctionnement de l'enfant, mais je ne reçois pas le statut Done dans le parent. Veuillez trouver ci-dessous le code et la sortie -unix AIX - récupère l'état d'un processus d'arrière-plan enfant dans le script shell parent
Parent Shell:
#!/bin/ksh
date
./sleep.com&
echo $?
echo $!
pid=$!
echo $pid
jobs $pid
wait $pid
jobs $pid
echo $pid
coque pour enfants (processus d'arrière-plan sleep.com-):
#!/bin/ksh
sleep 8
exit 10
sortie de Execution-
September 11, 2017 at 07:58:17 PM
0
12517444
12517444
[1] + Running <command unknown>
./parent.com[10]: jobs: no such job
12517444
S'il vous plaît aidez-moi à capturer le statut de jobs
comm et après l'achèvement de l'enfant.
Dans mon cas, je reçois une erreur:
./parent.com[10]: jobs: no such job
Merci & Cordialement
Himanshu Agrawal.
grâce Lorinczy. Cela me donne la sortie du processus fils dans la variable. mais j'ai besoin de supprimer la commande d'attente, ce qui signifie que le processus enfant est en arrière-plan, mais je devrais être capable d'obtenir le statut d'enfant. J'avais googlé que je pouvais utiliser la commande jobs pour faire la même chose, mais quand j'utilise dans le shell il me donne "pas un tel processus" après l'achèvement du processus. veuillez suggérer. –
Vous pouvez utiliser un langage de programmation réel avec prise en charge du signal: vous recevrez un signal SIGCHILD à la sortie de l'enfant. –