GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo serializar la ejecución de comandos en Linux?

flock es realmente excelente para esto. Puedes usar flock en un envoltorio alrededor de su script de shell, utilícelo en la línea de comandos o incorpórelo a su propio script.

Lo mejor de flock es que mientras espera, no espera en un bucle ocupado.

También siempre limpia el bloqueo cuando su proceso sale / flock salidas

Los métodos basados ​​en la creación de archivos/directorios atómicos pueden quedar bloqueados si el proceso finaliza sin limpiar (o si hay un kernel panic, o falla de energía, ...).

Con flock , el kernel de Linux hace la limpieza.

Del manual,

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

En este formulario, puede envolver un bloque específico de código en su script de shell.

O puedes ejecutarlo así,

/usr/bin/flock /tmp/lockfile command

Si no desea bloquear/esperar indefinidamente, puede especificar un tiempo de espera:

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

O simplemente use un argumento que no bloquee:

-n  --nonblock           fail rather than wait

Linux
  1. Cómo cambiar el nombre de los archivos en Linux

  2. Cómo usar el comando Su en Linux

  3. Cómo crear un script de un comando de Linux

  4. ¿Cómo ejecutar el comando antes del inicio de sesión del usuario en Linux?

  5. Cómo limpiar la salida del comando 'script' de Linux

Cómo bloquear un archivo de texto en Linux usando el comando flock

Cómo almacenar un comando de Linux como una variable en el script de Shell

Cómo usar el comando sysctl en Linux

Cómo MATAR un proceso en Linux

Cómo usar el comando de apagado de Linux

Cómo usar grep en Linux