Ce n'est pas la même que quelques-uns des autres points relatifs aux émis sous-processus pids (que j'ai vu de toute façon).
Si Zot contient:
echo "mypid principal: $ $ - lastpid: $!"
(
echo "bloc mypid: $ $ - lastpid: $! - PPID $ PPID"
ps-ef> xxx
sleep 5
echo "bloc mypid: $ $ - lastpid: $! - PPID $ PPID"
) &
echo "mypid principal: $ $ - lastpid: $! - PPID $ PPID"
6 personnes
Puis: ksh Zot (sous Solaris et MKS) se traduit par:
mypid principaux: 7318 - lastpid:
mypid bloc: 7318 - lastpid: - PPID: 607
mypid principaux: 7318 - lastpid: 7320 - PPID: 607
mypid bloc: 7318 - lastpid: - PPID: 607
Ce qui me surprend, que dans le processus de fourche enfant, encore que $ $ retourne le pid du processus principal. c'est-à-dire les deux montrent que 7318 $ $ - Je me serais attendu à l'enfant à avoir de $ $ $ 7320. (Vous pouvez ignorer le PPID - je regardais notions connexes.)
Si vous ne le faites: "grep 7320 xxx" vous obtenez:
root 7320 7318 0 13:59:45 pts / 9 0:00 ksh Zot
root 7321 7320 1 13:59:45 pts / 9 0:00 ps-ef
qui montre clairement l'enfant et si vous étiez à "kill -9" pid avant que les 5 secondes est expiré, vous ne pourriez pas obtenir le deuxième bloc de la ligne.
Mon intention était de l'enfant processus d'enregistrer ses propres pid plutôt que le parent le faire en son nom. Je me rends compte que le parent peut utiliser $! mais pourquoi ne pas utiliser l'enfant $ $ pour son propre PID? En passant, si vous avez extrait le bloc de code et de le mettre dans un fichier séparé et l'appeler, vous obtenez les résultats escomptés.
Je vous remercie à l'avance pour tout éclairage.
Michel