GNU/Linux >> Znalost Linux >  >> Linux

Jak serializovat provádění příkazů na linuxu?

flock je na to opravdu vynikající. Můžete použít flock v obalu kolem vašeho skriptu shellu, použijte jej na příkazovém řádku nebo jej začleňte do samotného skriptu.

Nejlepší věc na flock je, že zatímco čeká, nečeká v rušné smyčce.

Také vždy vyčistí zámek, když proces skončí / flock východy.

Metody založené na vytváření atomických souborů/adresářů se mohou zablokovat, pokud proces skončí bez vyčištění (nebo pokud dojde k panice jádra nebo výpadku napájení, ...).

S flock , linuxové jádro provede vyčištění.

Z příručky

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

V tomto formuláři můžete zabalit konkrétní blok kódu do skriptu shellu.

Nebo to můžete spustit takto,

/usr/bin/flock /tmp/lockfile command

Pokud nechcete blokovat/čekat donekonečna, můžete určit časový limit:

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

Nebo použijte neblokující argument:

-n  --nonblock           fail rather than wait

Linux
  1. Jak přejmenovat soubory v Linuxu

  2. Jak vytvořit skript příkazu Linux

  3. Jak vyčistit výstup příkazu linux 'script'

  1. Jak používat příkaz Disown v Linuxu

  2. Jak používat Su Command v Linuxu

  3. Jak provést příkaz před přihlášením uživatele v systému Linux?

  1. Jak používat příkaz Linux SS

  2. Jak odebrat adresář v Linuxu

  3. Jak používat příkaz Linux nohup