Lesen Sie beide Antworten scheint es, dass beide Antworten bieten eine Lösung für einen Mutex zu schaffen, aber es gibt einige Fälle, in denen Sie flock
verwenden und einige, wo Sie brauchen mkdir
zu verwenden:
- wenn Sie brauchen bereits robust/getesteten Funktionen wie Timeout, Sperrung, etc etc ->
flock
- builtin Timeout
- gebautet su verwenden pport zum Blockieren oder
- builtin Unterstützung nicht blockierend den Mutex zum Löschen, nachdem es
- wenn Ihre Distribution
flock
haben nicht verwendet wird - Sie mkdir
zu verwenden sind gezwungen
- >, wenn Sie brauchen Irgendwelche der Timeout oder andere Funktionen von
flock
zur Verfügung gestellt müssen Sie das Rad
- mit
mkdir
zum Erstellen eines Mutex neu erfinden bedeutet, dass Ihr Code nicht den Zweck sofort vermittelt -> whe Reas mit flock
bedeutet, dass Ihr Code für sich selbst sagt spricht "dieser Code ist die Umsetzung der Synchronisation"
- die meisten Menschen sind nicht vertraut mit
mkdir
ist eine gültige Lösung für die Erstellung eines Mutex und so mkdir
auf diese Weise kann Ihren Code mehr Code haben Geruch (vor allem, wenn Ihre Distribution hat flock
zur Verfügung und Sie wählt, es nicht zu benutzen)
Da dies ist eine Art Meta-Antwort über [Quick-and-dirty Weise nur eine Instanz von einem Shell-Skript, um sicherzustellen, läuft zu einer Zeit] (http://StackOverflow.com/q/185451/1983854), es ist vielleicht am besten, ein Bounty in diesem zu öffnen, anstatt das zu haben. – fedorqui
Gerade jetzt ist es etwas verwirrend, zwei Antworten zu haben, die dasselbe implementieren (aber verschiedene Implementierungen) und ungefähr dieselbe Anzahl von Upvotes haben. Abhängig vom Ergebnis dieser Frage werde ich eine der beiden Fragen als Duplikat markieren (mit der Hoffnung, die Verwirrung zu verringern). –