GNU/Linux >> Tutoriales Linux >  >> Linux

¿Qué comandos de Unix se pueden usar como semáforo/bloqueo?

Quiero ejecutar varios scripts de shell Bash en paralelo. Sin embargo, quiero evitar las condiciones de carrera. Qué comandos de Unix son verdaderamente atómicos que podría usar para este propósito y cómo puedo usarlos?

Respuesta aceptada:

Si lockfile no está instalado en su sistema, entonces mkdir hará
el trabajo:es una operación atómica, y falla si el directorio
ya existe (siempre y cuando no agregue el -p interruptor de línea de comando
).

create_lock_or_wait () {
  path="$1"
  wait_time="${2:-10}"
  while true; do
        if mkdir "${path}.lock.d"; then
           break;
        fi
        sleep $wait_time
  done
}

remove_lock () {
  path="$1"
  rmdir "${path}.lock.d"
}

Linux
  1. Spinlock frente a semáforo

  2. No se puede eliminar un directorio en Unix

  3. Qué puertos utiliza una aplicación

  4. ¿Qué es un spinlock en Linux?

  5. ¿Qué comando se puede usar para forzar la liberación de todo en la partición de intercambio a la memoria?

Linux vs Unix:¿Cuál es la diferencia?

Lo que un archivo de puntos de shell puede hacer por usted

Qué es Git Bash; Trabajar con comandos de Git Bash

90 comandos de Linux utilizados con frecuencia por los administradores de sistemas de Linux

SystemD - ¿Para qué se utiliza SystemD?

¿Qué es el sticky bit en los sistemas de archivos UNIX? ¿Cuándo se usa?