Qualquer maneira de ver se um comando bash do processo de execução longa foi bem-sucedido? [fechadas]

-2

Eu tenho um longo processo em execução que estava analisando texto e meu laptop morreu em algum momento porque estava desconectado.

Eu realmente não quero executar novamente o processo desnecessariamente porque ele leva mais de um dia, mas preciso ver se o processo foi concluído ou não antes de o computador morrer. Existe alguma maneira de fazer isso?

Era um script python

    
por deltaskelta 14.12.2015 / 01:21

3 respostas

1

Não saber o que o script ou comando é / foi torna mais difícil para mim responder, mas como regra geral: Se nada excelente o suficiente para forçar o log do sistema operacional aconteceu, está praticamente perdido, como até onde eu sei.

Boas práticas de desenvolvimento de software envolvem escrever código "Debug" , o que permitirá ao programa deixar mensagens sobre seu próprio progresso em algum lugar, seja em um arquivo de texto, ou em /var/log/yourscriptname/last.log como exemplo. / p>

Se o seu script contiver esse código de depuração, esses dois links poderão ser úteis para você:

Se não houver nada a ser encontrado, recomendo que você leia o script para ver se ele contém código de depuração e, se nenhum estiver presente, adicione algo equivalente a Script finished at [time here] , onde necessário.

    
por Xenhat 14.12.2015 / 01:41
3

Normalmente, os comandos não retornarão um código de status se tiverem sido desligados inesperadamente, especialmente no caso de uma perda de energia.

A melhor coisa que você pode fazer é ver se a saída (arquivo ou qualquer outro) está lá. Se for, então seu processo provavelmente terminou (ou terminou parcialmente). Caso contrário, você terá que reiniciar sua tarefa.

Se este é o seu próprio código, sugiro que você anexe um depurador ao seu programa. Se é de outra pessoa e é de código aberto (é Python então deveria ser), você pode simplesmente adicioná-lo.

    
por Kaz Wolfe 14.12.2015 / 01:31
0

Não há uma maneira geral de verificar se um determinado programa estava em execução quando o sistema foi desligado ou faleceu.

Dependendo do seu programa, você pode descobrir, por exemplo na data de modificação dos arquivos de saída do soem. Se você quiser ter certeza de que deve executar novamente o programa.

Se possível, você provavelmente poderia adicionar algum registro ao programa para saber da próxima vez se ele foi concluído corretamente.

    
por Florian Diesch 14.12.2015 / 01:34