Power-Management

如何找到筆記本喚醒的原因?

  • January 17, 2021

我的筆記本暫停時遇到問題,但是當我不希望它醒來時(立即或稍後在包裡時 - 我可能有兩個問題要解決)。但目前這個問題是關於故障排除的:有沒有我可以執行的命令告訴我最後一個resume動作的觸發器是什麼?例如,是否按下了某個鍵或電源按鈕,是否是網路喚醒信號,是否從交流電源切換到電池等,等等。

看來,在 Windows 上,您可以鍵入powercfg -lastwake以找出這一點。所以我正在尋找與該命令等效的 Linux。

如果沒有這樣的命令,我需要查找什麼,在哪個日誌文件中?

(Mint 16、xfce、Lenova Thinkpad、核心 3.11.0-12-generic)

帶有 systemd 的系統

在使用systemd你的系統上,可以使用命令查看 systemd 的日誌journalctl

例子

在這裡,例如,我的系統在蓋子關閉時進入睡眠狀態,然後當我打開它時,您會看到與此相關的事件,如下所示:

$ journalctl | less
...
May 19 09:04:47 greeneggs.bubba.net kernel: PM: Syncing filesystems ... done.
May 19 09:04:47 greeneggs.bubba.net kernel: PM: Preparing system for mem sleep
May 19 09:33:42 greeneggs.bubba.net kernel: Freezing user space processes ... (elapsed 0.002 seconds) done.
May 19 09:33:42 greeneggs.bubba.net systemd[1]: Time has been changed
May 19 09:33:42 greeneggs.bubba.net systemd-logind[772]: Lid opened.
...

沒有 systemd 的系統

對於不使用的系統,systemd您有很多地方可以查看。您可以首先查看dmesg日誌。您還可以查看/var/log/syslog與電源管理或 ACPI 相關事件相關的消息。

/var/log/pm_suspend.log假設它存在,我會先看一下。尤其是在 Linux Mint 等發行版上,您可能會在那裡找到如下消息:

Thu Feb 21 21:21:50 GMT 2013: Running hooks for hibernate.
Running hook /usr/lib/pm-utils/sleep.d/000kernel-change hibernate hibernate:
/usr/lib/pm-utils/sleep.d/000kernel-change hibernate hibernate: success.
Running hook /usr/lib/pm-utils/sleep.d/00logging hibernate hibernate:
...

參考

為了完整起見,this answer to a similar question中提到了另一種解決方案。

被電源鍵喚醒:

$ sudo dmidecode | grep Wake-up
   Wake-up Type: Power Switch

被 RTC 時鐘喚醒:

$ sudo dmidecode | grep Wake-up
   Wake-up Type: APM Timer

被鍵盤喚醒:

$ sudo dmidecode | grep Wake-up
   Wake-up Type: PCI PME#

引用自:https://unix.stackexchange.com/questions/132115