GNU/Linux >> Linux Esercitazione >  >> Linux

Come serializzare l'esecuzione del comando su Linux?

flock è davvero eccellente per questo. Puoi usare flock in un wrapper attorno al tuo script di shell, usalo sulla riga di comando o incorporalo nel tuo script stesso.

La cosa migliore di flock è che mentre attende, non attende in un ciclo occupato.

È anche sempre pulisce il blocco quando il processo termina / flock esce.

I metodi basati sulla creazione di file/directory atomici possono essere bloccati se il processo termina senza ripulire (o se si verifica un panico del kernel o un'interruzione di corrente, ...).

Con flock , il kernel Linux esegue la pulizia.

Dal manuale,

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

In questo modulo puoi avvolgere uno specifico blocco di codice nel tuo script di shell.

Oppure puoi eseguirlo in questo modo,

/usr/bin/flock /tmp/lockfile command

Se non vuoi bloccare/attendere indefinitamente, puoi specificare un timeout:

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

Oppure usa semplicemente un argomento non bloccante:

-n  --nonblock           fail rather than wait

Linux
  1. Come rinominare i file in Linux

  2. Come usare il comando Su in Linux

  3. Come creare uno script di un comando Linux

  4. Come eseguire il comando prima dell'accesso dell'utente su Linux?

  5. Come ripulire l'output del comando 'script' di Linux

Come bloccare un file di testo in Linux usando il comando flock

Come memorizzare un comando Linux come variabile nello script della shell

Come utilizzare il comando sysctl in Linux

Come KILL un processo su Linux

Come utilizzare il comando di arresto di Linux

Come usare grep in Linux