GNU/Linux >> Tutoriels Linux >  >> Linux

Comment sérialiser l'exécution des commandes sous Linux ?

flock est vraiment excellent pour cela. Vous pouvez utiliser flock dans un wrapper autour de votre script shell, utilisez-le sur la ligne de commande ou incorporez-le dans votre script lui-même.

La meilleure chose à propos de flock est que pendant qu'il attend, il n'attend pas dans une boucle occupée.

C'est aussi toujours nettoie le verrou lorsque votre processus se termine / flock sorties.

Les méthodes basées sur la création de fichiers/répertoires atomiques peuvent être verrouillées si le processus se termine sans nettoyage (ou s'il y a une panique du noyau, ou une panne de courant, ...).

Avec flock , le noyau Linux effectue le nettoyage.

Dans le manuel,

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

Dans ce formulaire, vous pouvez envelopper un bloc de code spécifique dans votre script shell.

Ou vous pouvez l'exécuter comme ceci,

/usr/bin/flock /tmp/lockfile command

Si vous ne souhaitez pas bloquer/attendre indéfiniment, vous pouvez spécifier un délai :

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

Ou utilisez simplement un argument non bloquant :

-n  --nonblock           fail rather than wait

Linux
  1. Comment renommer des fichiers sous Linux

  2. Comment utiliser la commande Su sous Linux

  3. Comment créer un script d'une commande Linux

  4. Comment exécuter la commande avant la connexion de l'utilisateur sous Linux ?

  5. Comment nettoyer la sortie de la commande Linux 'script'

Comment verrouiller un fichier texte sous Linux à l'aide de la commande flock

Comment stocker une commande Linux en tant que variable dans un script shell

Comment utiliser la commande sysctl sous Linux

Comment tuer un processus sous Linux

Comment utiliser la commande d'arrêt de Linux

Comment utiliser grep sous Linux