O método tradicional para conseguir isso seria fazer com que seu script verifique a existência de um arquivo em /var/run
quando ele for iniciado, se nenhum existir, crie um contendo seu próprio PID. Na conclusão, o script removeria esse arquivo. Se o arquivo existir, o script simplesmente sai. Desta forma, independentemente da frequência com que o script é chamado, ele só executará seu código principal se ainda não estiver em execução.
O problema com essa abordagem é que uma terminação impura deixa esse arquivo presente no sistema, portanto, muitas vezes ele é aumentado com uma verificação para ver se o PID especificado existe e se esse PID é para o script correto.
Esse método exige que você altere seu script em vez de simplesmente alterar sua entrada crontab
, mas é um mecanismo consagrado pelo tempo para resolver esse tipo de problema.