SSD temp com conky

3

Eu tenho um problema com o conky. Eu instalei o hddtemp e meu ssd é mostrado assim:

/dev/sda: Crucial_CT120M500SSD1: 39°C

agora em conky eu escrevi:

${alignr 10}${color}SSD M500 Crucial 120GB Temp ${color1}${hddtemp /dev/sda}ºC

Mas a área de trabalho mostra N / A ° C.

Como posso corrigir isso? Atenciosamente

    
por linofex 13.10.2015 / 17:05

3 respostas

4

Se você não quiser ter hddtemp em execução no modo daemon o tempo todo, também poderá executar hddtemp como um comando externo. No entanto, hddtemp precisa ser executado como root:

$ hddtemp /dev/sda
/dev/sda: open: Permission denied
$ sudo hddtemp /dev/sda
/dev/sda: ST3500418AS: 35°C

Então, primeiro você precisa dar permissão ao usuário para executar o comando. Execute visudo e adicione essa linha ao arquivo sudoers (altere linofex para seu nome de usuário real):

linofex  ALL=NOPASSWD:/usr/sbin/hddtemp

Isso deve permitir que você execute sudo hddtemp sem precisar digitar uma senha.

Agora, substitua a linha do seu arquivo conkyrc por:

${alignr 10}${color}SSD M500 Crucial 120GB Temp ${color1}${exec sudo hddtemp /dev/sda | awk '{print $NF}'}
    
por terdon 13.10.2015 / 19:12
3

Você precisa primeiro iniciar o hddtemp como um daemon em segundo plano com o comando:

 hddtemp -d /dev/sda

${hddtemp ...} é um objeto interno conky. Ele se conecta a 127.0.0.1:7634 por padrão para obter as temperaturas do disco. Portanto, você precisa iniciar, independentemente, o daemon hddtemp que escuta essa porta e responde com a informação.

Uma alternativa é usar ${exec hddtemp /dev/sda} que executa o hddtemp em cada atualização de janela e não precisa de um daemon.

Se você quer apenas a temperatura, canalize a saída em awk para obter o próximo ao último campo (no meu caso) ou seja, $ (NF-1), ou o último campo $ NF no seu caso:

${exec hddtemp /dev/sda|awk '{print $NF}'}
    
por meuh 13.10.2015 / 18:14
0

Outra solução é permitir o hddtemp com:

sudo chmod +s /usr/sbin/hddtemp

Então (baseado no seu exemplo), no seu arquivo conkyrc, o item se tornará:

${execi 1 hddtemp /dev/sda|sed 's%/dev/sda: %%' }

Isso lhe dará apenas Crucial_CT120M500SSD1: 39°C .

    
por Hydra Starmaster 18.11.2015 / 10:13