GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie wird die Befehlsausführung unter Linux serialisiert?

flock ist dafür wirklich hervorragend. Sie können flock verwenden in einem Wrapper um Ihr Shell-Skript, verwenden Sie es auf der Befehlszeile oder integrieren Sie es in Ihr Skript selbst.

Das Beste an flock ist, dass es während des Wartens nicht in einer Belegtschleife wartet.

Es auch immer räumt die Sperre auf, wenn Ihr Prozess beendet wird / flock Ausgänge.

Methoden, die auf der Erstellung von atomaren Dateien/Verzeichnissen basieren, können gesperrt werden, wenn der Prozess ohne Bereinigung beendet wird (oder wenn eine Kernel-Panik oder ein Stromausfall auftritt, ...).

Mit flock , der Linux-Kernel führt die Bereinigung durch.

Aus dem Handbuch,

(
flock -s 200  
# ... commands executed under lock ...
) 200>/var/lock/mylockfile

In diesem Formular können Sie einen bestimmten Codeblock in Ihr Shell-Skript einschließen.

Oder Sie können es so ausführen,

/usr/bin/flock /tmp/lockfile command

Wenn Sie nicht unbegrenzt blockieren/warten möchten, können Sie eine Zeitüberschreitung angeben:

-w  --timeout <secs>     wait for a limited amount of time

Oder verwenden Sie einfach ein nicht blockierendes Argument:

-n  --nonblock           fail rather than wait

Linux
  1. So benennen Sie Dateien unter Linux um

  2. So verwenden Sie den Su-Befehl unter Linux

  3. So erstellen Sie ein Skript eines Linux-Befehls

  4. Wie führe ich einen Befehl vor der Benutzeranmeldung unter Linux aus?

  5. So bereinigen Sie die Ausgabe des Linux-Befehls „script“.

So sperren Sie eine Textdatei in Linux mit dem Befehl flock

So speichern Sie einen Linux-Befehl als Variable im Shell-Skript

So verwenden Sie den Befehl sysctl unter Linux

Wie man einen Prozess unter Linux beendet

So verwenden Sie den Befehl zum Herunterfahren von Linux

So verwenden Sie grep unter Linux