O tmux deixa de responder ao rastrear um arquivo rapidamente atualizado

4

Eu tenho um arquivo de log que estou escrevendo algumas centenas de linhas para um segundo. Eu quero seguir isso em um painel tmux.

No entanto, quando faço isso, o tmux fica sem resposta - não consigo alterar painéis ou janelas, e nem consigo CTRL + C para parar a cauda.

Após cerca de 3 minutos a cauda será eventualmente morta por CTRL + C e eu recuperarei o controle - mas até lá não posso fazer nada (exceto mudar do terminal para outra janela como o meu navegador).

Existe alguma maneira de resolver isso? Eu suspeito que o problema está sendo causado porque muitas linhas estão sendo gravadas no arquivo de log.

    
por Andy Smith 03.07.2013 / 11:17

4 respostas

3

O problema é mais provável de ser sobrecarga do tmux, especialmente se você tiver uma divisão vertical no seu painel. Você pode definir o tmux para não atualizar a tela quando houver um monte de caracteres de controle sendo gravados. Veja man tmux para mais detalhes, mas eu tenho o seguinte no meu ~ / .tmux.conf .

set -g c0-change-trigger 20 #default is 250
set -g c0-change-interval 1000 #default is 100

Isso informa ao tmux que quando 20 seqüências de controle por milissegundos estiverem sendo impressas na tela, o tmux deve alterar seu intervalo de atualização para uma vez por milissegundos (1 / seg).

    
por William Everett 26.06.2014 / 20:51
2

Isso foi muito melhorado no tmux 2.1.

As opções c0-metioned em outras respostas foram removidas e uma abordagem de retrocesso para o buffer foi introduzida: link

    
por Andy Smith 31.03.2016 / 21:17
1

Isso NÃO deve ser causado pelo arquivo de log residual que está sendo gravado algumas centenas de vezes por segundo.

Tente enviar ssh para a caixa ou abrir outra sessão de terminal, use strace para anexar ao processo tmux , ver as chamadas do sistema feitas por e sinais recebidos pelo processo. Isso definitivamente vai ajudar.

Exemplo: strace -tT -pPID

Saída para um arquivo strace -tT -pPID -o /path/to/tmux_output

  

NOTA: strace é um depurador leve, ajudou-me a resolver vários problemas relacionados com o tmux no passado, por ex. O tmux não é capaz de criar / remover arquivos / diretórios em /var/run ou /run .

    
por Terry Wang 16.07.2013 / 06:46
0

Sei que isso não resolverá seu problema, mas tente enviar a saída do comando para less ou more :

  • less permite rolar até mesmo dentro de um terminal não rolável:

    <command> | less
    
  • more imprime uma página e, em seguida, você pressiona enter para exibir todas as linhas depois disso:

    <command> | more
    
por Radu Rădeanu 16.07.2013 / 06:14