Minha resposta é o mesmo que Mike disse.
No script, você deve colocar algo como isto:
- crie um arquivo de bloqueio
- Verifique a existência do arquivo de bloqueio ao executá-lo na próxima vez.
Mas há uma coisa muito importante que você deveria estar fazendo. e isso para implementar um sistema de interceptação.
Então, com isso, o que você pode fazer é que, mesmo que de alguma forma seu script seja morto ou alguém o tenha matado, você poderá capturar esse sinal e remover o arquivo de bloqueio, para não ter um arquivo de bloqueio obsoleto.
Você pode ler como implementar isso aqui .
Apenas uma pequena coisa, você não pode capturar o sinal 9, quero dizer, se alguém o fizer kill -9, você não poderá capturá-lo, pois esse sinal interage diretamente com o kernel e não há como capturá-lo.
Além disso, conforme sugerido por John, você precisa remover o arquivo de bloqueio sempre que o sistema for reiniciado, apenas para garantir que não exista nenhum arquivo obsoleto.
Isso você pode fazer facilmente colocando um pequeno rm -f <FILE>comando em /etc/rc.local