Minha resposta é um pouco igual à que Mike contou.
No script, você deve colocar algo assim:
- crie um arquivo de bloqueio
- Verifique a existência do arquivo de bloqueio quando for executado na próxima vez.
Mas há uma coisa muito importante que você deve fazer. e que para implementar um sistema de armadilha.
Então, com isso, o que você pode fazer é que, mesmo que de alguma forma o seu script seja morto ou alguém o mate, você pode capturar esse sinal e remover o arquivo de bloqueio, para que você não tenha um arquivo de bloqueio obsoleto .
Você pode ler como implementar isso em aqui .
Apenas uma coisa pequena, você não pode interceptar o sinal 9, quer dizer, se alguém faz kill -9
, você não pode capturar isso, pois esse sinal interage diretamente com o kernel e não há como interceptar isso.
Além disso, como sugerido por John, você precisa remover o arquivo de bloqueio toda vez que o sistema for reinicializado, apenas para garantir que não haja nenhum arquivo obsoleto.
Isso pode ser feito facilmente colocando um pequeno comando rm -f <FILE>
em /etc/rc.local