如何监控笔记本电脑的电池使用情况?

我的HP-745 G2笔记本电脑已充满电,我然后将其拔下并盖上盖子。

当我打开盖子(一天或两天后)打开盖子时,电池完全耗尽。

uname -a Linux HP-745-G2 4.10.14-041014-generic #201705031501 SMP Wed May 3 19:03:05 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux grep HandleLid /etc/systemd/logind.conf HandleLidSwitch=hibernate #HandleLidSwitchDocked=ignore 

关于如何防止这种情况有各种类似的问题和建议(虽然它们似乎对我不起作用)。

但是,我感兴趣的是一种以某种方式监控电池使用的方法,例如

  • 是不是hibernate了?
  • 如果没有,是什么阻止了它?
  • 哪些过程耗尽了最多的电池

等等

有什么像android中的batterystats可以通过命令行或应用程序进行分析?

要检查您的笔记本电脑是hibernate,hibernate还是活动,您可以检查/var/log文件夹中的syslog文件,例如

 grep -i 'shutdown\|sleeping\|hibernat\|resumed' /var/log/syslog* 

AFAIK没有任何软件可以保留所有进程的电池使用历史记录,至少与Android没有类似的东西。 默认的“电源统计”应用程序中有一些统计信息,但它只显示电池的耗电/充电速度,而不是由哪个进程负责。

你可以做的最好的事情就是安装像PowerTOP这样的应用程序( sudo apt install powertop )。 它显示哪些进程最活跃地使用CPU。 在PowerTOP使用电池运行一段时间并进行了足够的测量后,它将开始以瓦数表示过程功耗。

Powertop报告截图

但是,我怀疑你是否可以用它来检查hibernate或暂停期间的功耗。 我尝试使用sudo powertop --html=powertop.html --time=300生成报告,同时让我的笔记本电脑进入睡眠模式,似乎程序在系统hibernate时停止测量。 当您使用–time =选项和/或让您的系统进入睡眠模式时,并非所有报告的统计数据都是准确的。