É possível desabilitar o verbose no meio da execução?

3

Estou executando um programa fls (do Sleuth Kit) com a opção -v para o modo detalhado. No entanto, leva muito tempo, e o programa ainda está em execução desde ontem. Eu acho que vai correr mais rápido sem modo detalhado, mas não tenho certeza quanto tempo leva para terminar a execução e se vale a pena parar e reexecutá-lo sem verbose. então eu me pergunto se é possível desligar o modo verboso no meio da corrida e continuar a execução depois disso? Obrigado!

    
por Tim 07.08.2012 / 12:56

2 respostas

6

Como lynxlynxlynx aponta, a menos que o autor do programa faça provisões para isso, você não pode mudar a verbosidade enquanto o programa está rodando, mas você pode impedi-lo de imprimir para um terminal no caso de ser um gargalo.

Para fazer isso, feche o terminal após informar ao shell para não enviar um SIGHUP. A maioria dos shells enviará um SIGHUP para qualquer trabalho que ainda esteja em execução quando você tentar sair. Você pode dizer ao shell para não fazer isso. Existem várias maneiras de fazer isso; o mais direto é provavelmente com disown .

Se ainda não tiver feito isso, suspenda o trabalho com ctrl+z e execute-o novamente em segundo plano com bg e, em seguida, execute disown . O shell não rastreia mais esse processo como um trabalho, por isso não enviará um SIGHUP ao sair.

Se você já colocou o programa no backgound, então, se houver outros trabalhos em segundo plano iniciados após ele, você precisará do jobspec do programa em que está interessado para usar como parâmetro para passar para bg e disown .

    
por 07.08.2012 / 14:45
5

Talvez haja um hack que permita alterar o descritor de arquivo de saída do trabalho para /dev/null , mas não sei. Em qualquer caso, o programa ainda estaria escrevendo todas essas linhas, elas seriam descartadas. Isso ajudaria, portanto, apenas se a exibição do terminal fosse o gargalo, não a geração de mensagens.

    
por 07.08.2012 / 13:52