script bash bloqueio para evitar a execução paralela de dentro do próprio script?

0

Estou ciente de usar flock e solo (não tenho certeza da diferença) ao executar a partir de uma tarefa cron. No entanto, é possível evitar a execução paralela a partir do próprio script?

    
por eekfonky 20.11.2016 / 13:10

1 resposta

1

Como o Ipor Sircer disse, lckdo é provavelmente a escolha certa.

Dentro do script bash , pode ser assim: $ BASHPID é o script de execução do PID. Você pode salvá-lo em um arquivo e verificar se existe (ou melhor ainda verificar se o que contém PID ainda está ativo).

#!/usr/bin/env bash

PIDFILE="/foo/bar/script.pid"

# script running?
[[ -s $PIDFILE ]] && exit

# no, create pidfile
echo $BASHPID > $PIDFILE


# .. do some stuff

# delete pidfile
rm $PIDFILE
    
por 12.01.2017 / 02:34