OS X时间直到(系统/显示/磁盘)睡眠?

时间:2010-08-17 12:01:27

标签: objective-c ruby macos sleep

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

我认为通过命令行提供的pmset可能提供了这些信息,但它似乎只显示和更新当前设置,而不是允许反馈操作系统当前循环的位置。

我的要求是我目前有一个Ruby脚本,我只想在我不使用机器时运行,并且一个简单的'whatcher脚本'允许这样做,但是'看'是什么我是需要一些帮助。

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

1 个答案:

答案 0 :(得分:6)

下面是一个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