Preferováno by bylo řešení, které nevyžaduje další nástroje.
Přijatá odpověď:
Téměř jako odpověď nsg:použijte lock adresář . Vytváření adresářů je atomické pod linuxem a unixem a *BSD a mnoha dalšími OS.
if mkdir $LOCKDIR
then
# Do important, exclusive stuff
if rmdir $LOCKDIR
then
echo "Victory is mine"
else
echo "Could not remove lock dir" >&2
fi
else
# Handle error condition
...
fi
Můžete vložit PID zamykacího sh do souboru v adresáři lock pro účely ladění, ale nenechte se chytit do pasti a myslet si, že můžete zkontrolovat toto PID a zjistit, zda se proces zamykání stále provádí. Na této cestě leží spousta závodních podmínek.