Digamos que tengo varios scripts de bash que se ejecutan en paralelo, con un código como el siguiente:
#!/bin/bash
tail -f /dev/null &
echo "pid is "$!
¿Se $!
garantiza que me dará el PID de la tarea en segundo plano más reciente en ese script , o es la tarea en segundo plano más reciente a nivel mundial? Tengo curiosidad por saber si confiar en esta característica puede causar condiciones de carrera cuando el PID que devuelve proviene de un proceso iniciado en otro script.
fuente
$jobstate/$jobtext
para inspeccionar el estado del proceso allí. No sin raza, ya que el niño ya está cosechado en el momento en que se ejecuta la trampa, pero eso significa ventanas de carrera muy cortas donde es muy poco probable que los pids ya se reutilicen.