[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Script geht nicht



> Ich pruefe nicht, weil ich den mv-Prozesz fuerchte (das ist bekannt,
> dasz ein Move im gleichen Dateisystem hier keinen Schaden
> anrichtet), sondern weil ich die Datei nicht gerne anderen Prozessen
> zum Frasz vorlege und die sich vielleicht auf halb zubereitetes
> Zeugs werfen.

Dann fehlt bei dir aber die Logik das dies passiert. "fuser" führt in
deinem Beispiel lediglich "mv" aus oder nicht. Wenn nachfolgende
Anweiseungen dort stehen würden, würden diese einfach durchlaufen.

Wenn du mir jetzt sagst. "Da kommt aber nichts danach". Korrekt. Also
brauchst du auch keine Angst haben das andere Prozesse irgendetwas
passiert. Gibt ja keine.

> Und da ich nicht weisz, wie die naechsten Prozesse mit Halbgegorenem
> verfahren, pruefe ich erst, ob die Datei in Ruhe gelassen worden
> ist. Der fuser-Aufruf erledigt das mit einem Einzeiler.

In deinem beispiel aber nicht, da du nirgendswo abbrichst.

> Wenn mir fuser die Gewiszheit eines erfolgreich abgeschlossenen
> Schreibprozesses liefert,

Tut es gar nicht. Du weist nur das die Datei nicht mehr offen ist.

> bringt mir eine Ueberpruefung gerade auch
> bei einer Remote-Ablieferung recht viel. Und die Universalitaet
> eines solchen Verfahrens erlaubt mir spaeter Dateiverschiebungen
> unabhaengig der Betrachtungsweise des Zieldateisystems; da ist dann
> auch Remote-Verschieben ohne weitere Ueberlegung erlaubt.

Bei einem Remote Dateisystem bringt dir "fuser" überhaupt nichts weil
ein komplett anderer Rechner die Datei offen haben kann und gerade
verändern kann. Ist ja auch der Sinn bei Remote-Dateisystemen das nicht
nur ein Host drauf zugreifen kann. Solch ein Status siehst du mit fuser
nicht. Daher nein, deine Lösung funktioniert nicht unabhängig des
Dateisystems oder der betrachtungsweise oder mit jedem beliebigen
Remote-Verzeichniss.

> Meinen Einzeiler empfand ich anderen Eventualitaeten[0] gegenueber
> nicht als allzu aufwaendig.

Naja, ein Einzeiler der nicht das tut was du glaubst war nicht
aufwendig. Das reicht schon als aussage soetwas nicht zu implementieren.
Wenn alle nachfolgende Prozesse sicher sein sollen müsstest du
abbrechen. Warten bis die Datei verfügbar ist oder ähnliche Logik die
bei dir fehlt. Nur ein "mv" nicht auszuführen reicht da nicht.

Ansonsten ein weiterer Tipp. Ob Einzeiler oder nicht. Man sollte noch
dazu schreiben warum man etwas tut. Damit der verrückte Axt-Mörder der
deinen Code nach dir warten muss nicht irgendwann vor deiner Haustüre steht.


Reply to: