我的问题是,在 Ubuntu 14.10 中旧的 ${nvidia temp} 代码不起作用,我改用这个代码:${execi 60 nvidia-settings -query GPUCoreTemp | perl -ne 'print $1 if /GPUCoreTemp.*?: (\d+)./;'} °C
但是这个代码显示温度两次,为什么会这样?
输出nvidia-settings -q gpucoretemp
:
slaci@slaci-comp:~$ nvidia-settings -q gpucoretemp
Attribute 'GPUCoreTemp' (slaci-comp:0.0): 63.
'GPUCoreTemp' is an integer attribute.
'GPUCoreTemp' is a read-only attribute.
'GPUCoreTemp' can use the following target types: X Screen, GPU.
Attribute 'GPUCoreTemp' (slaci-comp:0[gpu:0]): 63.
'GPUCoreTemp' is an integer attribute.
'GPUCoreTemp' is a read-only attribute.
'GPUCoreTemp' can use the following target types: X Screen, GPU.
答案1
在终端中尝试您的代码/shell 脚本,以查看其确切输出的内容。它可能提供双重结果,然后您可以在终端中对其进行故障排除。
nvidia-settings -query GPUCoreTemp | perl -ne 'print $1 if /GPUCoreTemp.*?: (\d+)./;'
刚刚看到你更新的 Q,nvidia-settings 的输出不知为何打印了两次温度。其中一个包含“gpu”,用 to 很容易抓取,grep
然后只将一个温度输入到你的perl
脚本中,所以这应该可以工作
nvidia-settings -query GPUCoreTemp| grep gpu | perl -ne 'print $1 if /GPUCoreTemp.*?: (\d+)./;'
如果把所有内容放到 conkyrc 中,它看起来应该是这样的:
${execi 60 nvidia-settings -query GPUCoreTemp| grep gpu | perl -ne 'print $1 if /GPUCoreTemp.*?: (\d+)./;'} °C
Conky 应该只打印 shell 返回的内容,并且exec
在终端中测试代码比通过 Conky 运行更有启发性,可以看到 Conky 忽略的错误消息(我认为它只使用 stdout)。
我没有,nvidia-settings
所以我无法测试它,但这里有一些替代脚本/命令应该返回 GPU 的温度;你必须查看输出以nvidia-settings
确定要搜索和剪切的内容,如果它已更改并且这些不再起作用。
从 第一个论坛发现
nvidia-settings -q gpucoretemp -t
nvidia-smi -a | grep Gpu
nvclock -T
nvidia-settings -q gpucoretemp |grep '):' | cut -d ' ' -f 6,6 | sed -e 's/.\{1\}$//'
nvidia-settings -t -q localhost:0/gpucoretemp