There may be an issue that some iMac users experience where after being in sleep for a period of time, their systems will no longer respond to keypresses or other input, and even though pressing the power button should similarly wake the system, doing this similarly has no effect. With this problem, affected systems require either the power button be pressed and held for ~10 seconds, or the power cord is pulled to shut the system down and reset it.
Recently MacIssues reader Ken H. wrote in about this problem happening on a Late 2013 model iMac, running the latest versions of Yosemite and all other installed software. While the system would wake properly if immediately put into sleep and then woken, if left in sleep mode for a prolonged time, then it would simply refuse to wake up.
In general, this type of issue suggests a power management problem or other hardware-based configuration fault that can usually be tackled by the generic troubleshooting steps of resetting the Mac’s Parameter RAM
(PRAM) or its system management controller
(SMC). However despite Ken resetting the these features, the problem continued, suggesting the default values for these controllers is allowing the issue to persist.
After investigating this problem further, Ken found it revolves around the handling of hibernation mode.
When your Mac sleeps, it will initially enter a standard low power sleep mode that keeps memory active so you can quickly resume your work. However, if power is lost in this mode then your system will lose its memory contents and have to start back up from scratch. To prevent this, hibernation mode (aka standby mode) will write the contents of memory to your Mac’s hard drive and then shut off, allowing you to resume work in the face of lost power. Since this mode uses no power, it is required to be on by default for some systems in some countries.
Unfortunately it appears that some systems may have troubles with hibernation mode, so if you are finding your Mac unable to wake from sleep, then are three potential fixes you can try:
Turn off system hibernation
Since hibernation mode’s only real benefit is to allow you to resume from sleep in the face of a power loss, a simple solution may be to turn hibernation mode off by running the following two commands in the OS X Terminal (enter your password when prompted–it will not show):
sudo pmset standby 0
sudo pmset autopoweroff 0
These commands will turn off the hardware settings that will put your Mac into hibernation mode. The first is Apple’s main standby mode option, and the second is an implementation required for European energy regulations. To reverse these commands, you can again either reset your Mac’s system management controller, or re-run the commands but use “1” as the value instead of “0.”
Disable and re-enable FileVault
The writing and restoring of memory contents from disk may conflict with FileVault or other full disk encryption routines. Technically when waking from hibernate mode the system should allow you to authenticate and then load the contents of the hibernation file, but if a bug prevents this from happening, then your Mac may not be able to load the hibernation file, and could hang.
To hopefully overcome this, first try disabling your full-disk encryption routines. After your disk is fully decrypted (this may take a while) test hibernate mode to see if it works properly, and then re-enable disk encryption and test again.
Remove your the system’s hibernation file
A final approach you can try is to remove the system’s hibernation file, which is the hidden file that is written to whenever your Mac goes into hibernation mode. While the system will recreate this file if it is missing, if present then it will just write to the existing file. As a result, any damage to this file may prevent the system from reading it when waking from sleep. To fix this, you can force OS X to recreate it by deleting it, which can be done by running the following command in the Terminal:
sudo rm /var/vm/sleepimage
Again supply your password when prompted, and then see if hibernate mode works properly.
Special thanks to Ken for writing in about this issue