

休眠状态指的是一种系统低功耗运行状态。在此状态下,各种支持休眠模式的外围设备也都全部进入休眠模式,CPU 挂起,所有用户态应用程序和内核态进程全部被冻结,内存处于自刷新模式。系统处于休眠状态会屏蔽所有除唤醒之外的所有命令,直到系统被某种原因唤醒才会解除此种状态。
节点/sys/kernel/debug/wakeup_sources
打印出系统的锁, 并可以看到其当前所处的状态:
新增操作:
释放:
节点/sys/kernel/debug/suspend_stats
查看之前休眠的状态,会总结休眠唤醒成功多少次,失败多少次及在哪一步失败 :
节点/sys/power/state
查看支持的休眠方式:
可以看出内核提供了三种 Suspend: Freeze、 Standby 和 STR(Suspend to RAM),在用户空间向”/sys/power/state” 文件分别写入” freeze”、 ” standby” 和” mem”,即可触发它们 。
前提是不能有人持有休眠锁
awk '$6 != 0 {print $1" "$6}'/sys/kernel/debug/wakeup_sources