Eu recomendaria usar o comando executar um - muito mais simples do que lidar com as fechaduras. Dos documentos:
run-one é um script de wrapper que executa não mais do que uma instância exclusiva de algum comando com um conjunto exclusivo de argumentos. Isso geralmente é útil com cronjobs, quando você não deseja mais do que uma cópia de cada vez.
run-this-one é exatamente como run-one, exceto que ele usará pgrep e kill para localizar e eliminar qualquer processo em execução de propriedade do usuário
e combinando os comandos e argumentos de destino. Observe que run-one-one bloqueará ao tentar matar os processos correspondentes, até que todos os correspondentes
processos estão mortos.
run-one-constant opera exatamente como o run-one, exceto que
respawns "COMMAND [ARGS]" sempre que o comando COMMAND sair (zero ou diferente de zero).
keep-one-running é um apelido para o run-one-constantement.
run-one-until-success opera exatamente como o run-one-constant, exceto
que ele reaparece "COMMAND [ARGS]" até o COMMAND sair com sucesso (ou seja,
sai em zero).
run-one-until-failure opera exatamente como o run-one-constant, exceto
que ele reaparece "COMMAND [ARGS]" até que o COMMAND saia com falha (isto é,
sai diferente de zero).