
Eu tenho um cronjob que é executado a cada minuto e verifica a existência de um determinado arquivo. Se não existir tal arquivo, o trabalho termina silenciosamente. Se houver um arquivo, outro script será iniciado. Esse script remove o arquivo quando terminar. Seu tempo de execução pode levar até 20 minutos.
Minhas perguntas são: há alguma falha neste esquema? Posso armazenar esse arquivo em tmp? Posso ter certeza de que nada tentará removê-lo?
Obrigado pelas respostas!
O objetivo deste esquema é permitir a execução desse script através da interface web. O próprio script está na pasta pessoal do usuário e funciona em seu conteúdo. Não tenho certeza se a criação de arquivos pid em/var/run é apropriada.
Responder1
Eu acho que você fala de um sistema Linux. Se você não configurou nada para limpar /tmp, isso não será feito automaticamente. A única exceção é quando você reinicia o sistema - a maioria das distribuições Linux limpa /tmp na reinicialização. Claro que você pode procurar o script que faz o celan up e desativá-lo se isso for uma preocupação
Responder2
Primeiro... acho que seu trabalho pode ser executado até 20 vezes se você 'remover o arquivo quando terminar'. Pelo que você está dizendo, o arquivo deve ser movido/removido assim que for detectado.
Responder3
Enquanto você verifica se o script de processamento de arquivos ainda não está em execução, você deve estar bem. /tmp é adequado para esse tipo de coisa, a menos que você esteja enfrentando reinicializações aleatórias, e isso por si só é um grande problema.
Responder4
Você pode querer dar uma olhada na página de manual aqui. Esse tipo de sinalizador é frequentemente encontrado em /var/run. Você deve usar um arquivo de marcador para ambos os processos para evitar a execução de vários scripts de processamento.