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

opt*_*lic 4 battery hibernate laptop

我的 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
Run Code Online (Sandbox Code Playgroud)

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

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

  • 它是否冬眠?
  • 如果不是,是什么阻止了它?
  • 哪些进程消耗的电量最多

等等等等

android中是否有类似batterystats的东西可以通过命令行或应用程序进行分析?

THe*_*per 5

要检查您的笔记本电脑是否处于休眠、睡眠或活动状态,您可以检查文件/var/log夹中的系统日志文件,例如

grep -i 'shutdown\|sleeping\|hibernat\|resumed' /var/log/syslog*
Run Code Online (Sandbox Code Playgroud)

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

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

Powertop 报告截图

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