I just got a new Retina MacBook Pro 15". After getting some downloads interrupted due to the computer going to sleep (even on AC power), I started looking at the man page for the pmset
command. I did solve my original problem with sleeping but a few options piqued my interest. In particular, here's the description for the autopoweroff
setting from the man page:
autopoweroff - Where supported, enabled per default as an implementation of Lot 6 to the European Energy-related Products Directive. After sleeping for autopoweroffdelay minutes, the system will write a hibernation image and go into a lower power chipset sleep. Wakeups from this state will take longer than wakeups from regular sleep. The system will not auto power off if any external devices are connected, if the system is on battery power, or if the system is bound to a network and wake for network access is enabled.
And then there's the standby
mode:
standby causes kernel power management to automatically hibernate a machine after it has slept for a specified time period. This saves power while asleep. This setting defaults to ON for supported hardware. The setting standby will be visible in pmset -g if the feature is supported on this machine.
standby only works if hibernation is turned on to hibernatemode 3 or 25.
standbydelay specifies the delay, in seconds, before writing the hibernation image to disk and powering off memory for Standby.
Now maybe I'm just being thick, but both options seem like they do essentially the same thing. The main difference I see is that standby
requires a specific hibernatemode
.
Concretely, the way I'd like to configure my computer is for it to do a RAM-only sleep (exactly like hibernatemode 0
does) when first closing the lid, so that it quickly goes to sleep, without writing the RAM contents to disk immediately. However, if I leave the computer sleeping with the lid closed for a certain number of hours (say 4 hours), I'd like it to only then write the RAM contents to disk and power off the computer, so as to save battery in case of an extended sleep. Ideally, I'd also like the second part (writing RAM to disk and power off) to happen only if the computer is running on battery power.
The reasoning here is that, for me, the common use case for sleeping is taking the computer from home to work and back, and there's no point in slowing down the sleep process and wasting SSD write cycles (as well as slowing down the wake-up process, if it does hibernate) if I'm just going to wake it up again in less than an hour; also, since the time it spends sleeping is so short, not much battery would be saved by shutting the computer down for such a short period.
How should I configure the hibernatemode
, autopoweroff
, autopoweroffdelay
, standby
and standbydelay
options to achieve this behavior?