【问题标题】:OS X time until (system/display/disk) sleep?OS X 直到(系统/显示器/磁盘)睡眠的时间?
【发布时间】:2011-03-30 22:48:32
【问题描述】:

有没有人知道一种查询 OS X 的方法,以了解在它进入系统睡眠或激活显示器睡眠(甚至磁盘睡眠)之前实际剩余的时间,无论是通过命令行还是任何其他方法(例如 Ruby 或 Objective-C)?

我认为通过命令行的 pmset 之类的东西可能已经提供了这些信息,但它似乎只显示和更新当前设置,而不是允许反馈操作系统当前所处的周期。

我的要求是我目前有一个 Ruby 脚本,我只想在我不使用机器时运行它,并且一个简单的“whatcher 脚本”可以实现这一点,但“观看”是我的事情需要一点帮助。

似乎应该有一个简单的答案,但到目前为止我还没有发现任何明显的东西。有什么想法吗?

【问题讨论】:

    标签: objective-c ruby macos sleep


    【解决方案1】:

    这是一个 bash 脚本来显示命令,这有点复杂。这个想法是用户在节能器首选项窗格中设置系统睡眠时间。当连接到计算机的设备在此期间没有移动时,系统实际上会进入睡眠状态。因此,要获得系统进入睡眠状态的时间,我们需要这两个结果之间的差异。

    #!/bin/bash
    
    # this will check how long before the system sleeps
    # it gets the system sleep setting
    # it gets the devices idle time
    # it returns the difference between the two
    #
    # Note: if systemSleepTimeMinutes is 0 then the system is set to not go to sleep at all
    #
    
    systemSleepTimeMinutes=`pmset -g | grep "^[ ]*sleep" | awk '{ print $2 }'`
    
    if [ $systemSleepTimeMinutes -gt "0" ]; then
        systemSleepTime=`echo "$systemSleepTimeMinutes * 60" | bc`
        devicesIdleTime=`ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print $NF/1000000000; exit}'`
        secondsBeforeSleep=`echo "$systemSleepTime - $devicesIdleTime" | bc`
        echo "Time before sleep (sec): $secondsBeforeSleep"
        exit 0
    else
        echo "The system is set to not sleep."
        exit 0
    fi
    

    【讨论】:

    • 太好了。 'ioreg -c IOHIDSystem' 是这一切的关键。非常感谢。
    猜你喜欢
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多