zoukankan      html  css  js  c++  java
  • Linux 下使用rtcwake实现定时休眠和唤醒设备

    查看是否安装rtcwake

    whereis rtcwake
    rtcwake: /usr/sbin/rtcwake /usr/share/man/man8/rtcwake.8.gz

    查看rtcwake帮助

    rtcwake --help
    Usage:
     rtcwake [options]
    
    Options:
     -d, --device <device>    select rtc device (rtc0|rtc1|...)
     -n, --dry-run            does everything, but suspend
     -l, --local              RTC uses local timezone
     -m, --mode <mode>        standby|mem|... sleep mode
     -s, --seconds <seconds>  seconds to sleep
     -t, --time <time_t>      time to wake
     -u, --utc                RTC uses UTC
     -v, --verbose            verbose messages
    
     -h, --help     display this help and exit
     -V, --version  output version information and exit
    
    For more details see rtcwake(8).

    使用方法

     standby

    普通待机模式,为默认选项,对应ACPI  state S1

     mem

    待机到内存,即内存之外把其他设备都进入低功耗模式,对应ACPI state S3

     disk

    待机到硬盘,即休眠,把电脑的当前状态保存到硬盘,几乎不消耗外部电源,对应ACPI state S4

    off 

    通过调用系统的关机命令来休眠, 对应ACPI state S5

    可以通过以下命令查阅当前系统支持的休眠模式

    cat /sys/power/state
    standby mem disk

    执行该命令的时候需要root权限

    1. 系统休眠后20seconds唤醒,加-v选项可以看到更多的打印信息

    sudo rtcwake -v -s 20 -m mem 或
    
    sudo rtcwake -v -s 20 -m standby

    打印信息:

    rtcwake -v -s 20 -m mem
    Using UTC time.
    delta   = 0
    tzone   = 0
    tzname  = UTC
    systime = 1393296617, (UTC) Tue Feb 25 02:50:17 2014
    rtctime = 1393296617, (UTC) Tue Feb 25 02:50:17 2014
    alarm 0, sys_time 1393296617, rtc_time 1393296617, seconds 20
    rtcwake: wakeup from "mem" using /dev/rtc0 at Tue Feb 25 02:50:38 2014
    suspend mode: mem; suspending system

    2. 系统在指定的时间醒来

    rtcwake -v -t `date -d 10:53 +%s` -m mem
    Using UTC time.
    delta   = 0
    tzone   = 0
    tzname  = UTC
    systime = 1393296754, (UTC) Tue Feb 25 02:52:34 2014
    rtctime = 1393296754, (UTC) Tue Feb 25 02:52:34 2014
    alarm 1393296780, sys_time 1393296754, rtc_time 1393296754, seconds 0
    rtcwake: wakeup from "mem" using /dev/rtc0 at Tue Feb 25 02:53:00 2014
    suspend mode: mem; suspending system
    rtcwake -v -t `date -d 10:54 +%s` -m standby
    Using UTC time.
    delta   = 0
    tzone   = 0
    tzname  = UTC
    systime = 1393296794, (UTC) Tue Feb 25 02:53:14 2014
    rtctime = 1393296794, (UTC) Tue Feb 25 02:53:14 2014
    alarm 1393296840, sys_time 1393296794, rtc_time 1393296794, seconds 0
    rtcwake: wakeup from "standby" using /dev/rtc0 at Tue Feb 25 02:54:00 2014
    suspend mode: standby; suspending system

    如果发现systime 和rtctime时间不一致,需要利用hwclock进行调整。


    原文链接:https://blog.csdn.net/bulreed/article/details/19907691

  • 相关阅读:
    [NOI2009]管道取珠 DP + 递推
    poj3207 Ikki's Story IV
    NOIP2016Day1T2天天爱跑步(LCA+桶)
    NOIP2016Day2T3愤怒的小鸟(状压dp) O(2^n*n^2)再优化
    NOIP2016Day1T3换教室(floyd+期望dp)
    bzoj1854: [Scoi2010]游戏(匈牙利) / GDKOI Day2 T2(最大流)
    [CodeVs4927]线段树练习5
    基数排序的奇技淫巧
    bzoj2724: [Violet 6]蒲公英(离散化+分块)
    bzoj1483: [HNOI2009]梦幻布丁(链表+启发式合并)
  • 原文地址:https://www.cnblogs.com/runtimeexception/p/12170200.html
Copyright © 2011-2022 走看看