Disons que j'ai plusieurs scripts bash qui s'exécutent en parallèle, avec du code comme celui-ci:
#!/bin/bash
tail -f /dev/null &
echo "pid is "$!
Est-il $!
garanti de me donner le PID de la tâche d'arrière-plan la plus récente de ce script , ou s'agit-il de la tâche d'arrière-plan la plus récente au niveau mondial? Je suis simplement curieux de savoir si le fait de compter sur cette fonctionnalité peut provoquer des conditions de concurrence lorsque le PID qu'il renvoie provient d'un processus démarré dans un autre script.
la source
$jobstate/$jobtext
pour inspecter l'état du processus. Pas sans race car l'enfant est déjà récolté au moment où le piège est exécuté, mais cela signifie des fenêtres de course très courtes où les pids sont très peu susceptibles d'être déjà réutilisés.