Tmux exibe “xzy not ready” na barra de status

2

Estou usando o iTerm 2 à noite e tenho a seguinte configuração de configuração do tmux para a barra de status à esquerda:

set -g status-left "#[fg=green]#h @ #[fg=cyan]#(extip | awk '{print \"ip \" $1}') #[fg=yellow]#(ifconfig en0 | grep 'inet ' | awk '{print \"en0 \" $2}')  #[fg=red]#(ifconfig tun0 | grep 'inet ' | awk '{print \"vpn \" $2}'"

O qual deve imprimir meu IP externo, en0 e, se conectado, minha conexão vpn. extip é minha própria ferramenta que eu mesmo escrevi, mas não toquei há algum tempo, e funciona muito bem a partir da linha de comando (e posso ver que ela é chamada e retorna corretamente ao anexar um depurador a ela). Tudo funcionou muito bem até algumas semanas atrás, e desde então ele exibe apenas <'extip | awk '{print "ip " $1}'' not ready> em vez do meu endereço IP externo. O resto ainda está funcionando perfeitamente sem problemas. No começo eu pensei que era apenas iTerm todas as noites sendo instável, mas algumas atualizações se passaram e ainda não funciona, então eu estou sentindo que talvez isso nunca tenha sido feito e feito por algum tipo de fluke ? Alguém pode me dar algumas dicas sobre por que ele pode ter parado de funcionar e como posso fazê-lo funcionar novamente?

    
por JustSid 04.01.2016 / 23:27

1 resposta

2

link menciona que

the not ready message is normal, tmux is telling you the command has not finished running yet, it will display the output as soon as the command finishes

Eu tenho visto isso após a atualização do Ubuntu 16.04 para 16.10 com o meu script que mostra o servidor ssh no formato de status da janela - ele pisca por enquanto se conecta. Na verdade, eu posso reproduzi-lo apenas fazendo

tmux setw -g window-status-current-format '#(echo 'tmux display-message -p "#W #{pane_pid}"')'

e, em seguida, ssh aslkfdsdkljfslkdsajf , ele piscará ao tentar se conectar.

Eu estou supondo que extip leva um tempo para retornar um resultado; o que acontece se você substituí-lo por um script de shell que só faz echo 1 ou sleep 1; echo 1 ?

(Note também que o tmux deve armazenar em cache todos os comandos, uma vez que eles são executados pelo menos uma vez nessa janela / painel, mas se o próprio comando mudar - como no meu exemplo acima - ele não usará o cache. enviou um relatório de erros sobre o silenciamento do comando "not ready" em tais casos.

    
por 17.02.2017 / 11:00