Angenommen, ich habe mehrere Bash-Skripte, die parallel ausgeführt werden, mit Code wie dem folgenden:
#!/bin/bash
tail -f /dev/null &
echo "pid is "$!
Gibt $!
mir garantiert die PID der neuesten Hintergrundaufgabe in diesem Skript oder ist es die aktuellste Hintergrundaufgabe weltweit? Ich bin nur neugierig, ob das Verlassen auf diese Funktion zu Rennbedingungen führen kann, wenn die zurückgegebene PID aus einem Prozess stammt, der in einem anderen Skript gestartet wurde.
quelle
$jobstate/$jobtext
zur Überprüfung des Prozessstatus verwendet werden. Nicht ohne Rasse, da das Kind zum Zeitpunkt der Ausführung der Falle bereits geerntet ist, aber das bedeutet sehr kurze Rennfenster, in denen es sehr unwahrscheinlich ist, dass Pids bereits wiederverwendet werden.