Script de shell muito lento para saída para Conky

3

Eu quero a saída de

stdbuf -i0 -o0 -e0 jack_cpu_load | sed -n 's/[A-Za-z]*//g;s/ //g;s/.\{4\}$//;9,$p'

para ser exibido no Conky, mas, suspeito, o Conky está iniciando o script a cada atualização e o script está muito lento, produzindo uma saída para mostrar qualquer coisa.

Ou talvez seja algo totalmente diferente.

Eu usei ${execp /path/to/script.sh}

Existe uma maneira de permitir que o script seja executado e que Conky prove a saída. Desde que minha teoria esteja correta. encolhe os ombros

Edit: Estou trabalhando para enviar a saída para um arquivo, depois de ter Conky lido isso, mas estou tendo dificuldades para substituir o arquivo.

O mais próximo que cheguei até agora é, stdbuf -i0 -o0 -e0 script.sh > file.log , mas isso continua anexando a saída ao arquivo até que eu pare e inicie de novo.

    
por user57649 26.01.2014 / 23:52

3 respostas

2

Você deve dizer que isso está relacionado a saída de tubulação de jack_cpu_load através do sed

Então você deseja extrair os valores flutuantes desta saída

jack DSP load 0.163633
jack DSP load 0.159914
jack DSP load 0.159449
jack DSP load 0.164087
jack DSP load 0.159971

Nunca ouvi falar de conky antes. Parece legal.

O que eu faria aqui:

Não chame o executável a cada vez, mas tenha jack_cpu_load gravado em um "buffer circular" (eu multiplico por 100 porque não tenho certeza do que o conky faz para flutuar)

stdbuf -oL jack_cpu_load | grep --line-buffered "jack DSP load" | stdbuf -oL cut -d' ' -f4 | while read line; do echo "scale=0; $line*100/1" | bc -l > /tmp/buffer; done &

Leia o buffer do conky:

${tail /tmp/buffer 1 1}

Ou desenhe uma barra

${execbar cat /tmp/buffer}

ou

${execibar 1 cat /tmp/buffer}

Eu não tenho X aqui, mas vou deixar você tentar:)

PS. Também encontrei isso no estouro de pilha ( link ) que mostra outras possibilidades

    
por 27.01.2014 / 01:24
0

você precisa de execpi em vez de execp

   execpi interval command
          Same as execp but with specific interval.  Interval can't be less than update_interval in configuration. Note that the output from the $execpi com‐
          mand is still parsed and evaluated at every interval.
    
por 27.01.2014 / 00:46
-1

Tente dar mais espaço para o texto com "text_buffer_size".

    
por 03.04.2014 / 08:41