在 Fedora 上,当我没有对计算机进行任何操作时,lspci 命令保持在 ~100%。我上周完成了全新安装,在此之前我也遇到过这个问题。
顶部输出给了我:
PID 用户 PR NI VIRT RES SHR S %CPU %MEM TIME+ 命令 10283 蒂姆 20 0 19384 1436 1312 R 100.0 0.0 14:34.63 lspci 1752 蒂姆 20 0 624948 144552 109544 S 8.0 1.8 3:49.61 Xorg 11197 蒂姆 20 0 612712 48612 36336 S 2.0 0.6 0:18.19 gnome-syst+ · ·
如果我检查系统监视器,我会发现只有 1 个 cpu 以 ~100% 的速度运行。
此外,如果我尝试运行命令“lspci”,它只会继续加载并且不显示任何内容。
有关我的系统的一些信息:
Fedora 27(最新) 英特尔(R) 酷睿(TM) i7-4700MQ CPU @ 2.40GHz 每个插槽的核心数:4 内存:8G
答案1
您必须弄清楚哪个进程调用lspci
.用脚本替换lspci
二进制文件。将其重命名为lspci.bin
(以用户身份发出以下命令root
):
mv /usr/bin/lspci /usr/bin/lspci.bin
创建脚本:
touch /usr/bin/lspci
使其可执行:
chmod +x /usr/bin/lspci
使用您最喜欢的文本编辑器打开创建的脚本(例如nano
)
nano /usr/bin/lspci
并复制/粘贴以下代码:
#!/bin/sh
echo lspci "$@" >> /var/log/lspci.log
date >> /var/log/lspci.log
pstree >> /var/log/lspci.log
exec lspci.bin "$@"
重新启动计算机,检查是否lspci
存在 CPU 过载问题,打开日志文件/var/log/lspci.log
并尝试解释发生了什么。如果您找不到问题的原因,请发布日志内容并寻求额外支持。
如果问题已经消失,请恢复所有内容:
rm -f /usr/bin/lspci
mv /usr/bin/lspci.bin /usr/bin/lspci
rm -f /var/log/lspci.log
reboot