BASH – Script con archivo de bloqueo.

Esto es útil cuando requiere que el script no se ejecute más de 1 vez. Una vez ejecutado el script, verifica que el archivo «bloqueo.txt» no exista, de ser asi lo crea y se ejecutan todas las labores que deba realizar el script, una vez finalizado este archivo de bloqueo es eliminado. Si mientras esta en ejecución es lanzado nuevamente, el script verifica que el archivo de bloqueo existe y por lo tanto finaliza su ejecución. También si el script que se esta ejecutando finaliza en forma inesperada (CTRL-C, etc..), el archivo de bloqueo es eliminado.

#!/bin/bash

bloqueo=/usr01/trabajo/bloqueo.txt

if ( set -o noclobber; echo "$$" > "$bloqueo") 2> /dev/null;

then

trap 'rm -f "$bloqueo"; exit $?' INT TERM EXIT

touch $bloqueo

echo "Realizo todas las tareas del Script"

trap - INT TERM EXIT

else

echo "Ya hay otro proceso de este script ejecutandose"

echo "corriendo con el PID: $(cat $bloqueo)"

fi
Esta entrada fue publicada en Unix - Linux. Guarda el enlace permanente.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.