How to Prevent & Disable Mac OS X From Sleeping From the Command Line Terminal Application

Print Friendly, PDF & Email

Source: nixCraft

I’m running a process to complete backup and covert images in Mac OS X laptop. I do not wish to disable sleep manually from my OS X power options (Energy Saver). How do I temporarily prevent a Mac from sleeping while my process is still active in Mac OS X Unix operating systems? How can I prevent the system from sleeping temporarily from the command prompt?

You can use the caffeinate command. This command creates assertions to alter system sleep behavior. If no assertion flags are specified, caffeinate creates an assertion to prevent idle sleep.

Another option is to use the pmset command to manipulate power management settings.



The syntax is:

caffeinate [options]
caffeinate [options] command


Let us see how to use the caffeinate command. Open the Terminal application and use the command as per your need.

Prevent the display from sleeping

$ caffeinate -d

Prevent the system from idle sleeping

$ caffeinate -i

Prevent the disk from idle sleeping

$ caffeinate -m

Prevent the system from sleeping when system is running on AC power

$ caffeinate -s

How do I declare that user is active?

$ caffeinate -u vivek
$ caffeinate -u vivek wget url

If the display is off, this option turns the display on and prevents the display from going into idle sleep. If a timeout is not specified with the -t option, then this assertion is taken with a default of 5 second timeout.

How do I set timeout?

$ caffeinate -t 60
You can specifies the timeout value in seconds for which this assertion has to be valid. The assertion is dropped after the specified timeout. Timeout value is not used when an utility is invoked with this command (120 seconds time out is not valid as wget command invoked):
$ caffeinate -t 120 wget url

Prevent sleep as long as given process is running

In this following example, caffeinate command forks a process, execs « make » in it, and holds an assertion that prevents idle sleep as long as that process is running:

caffeinate -i make
# Avoid disk from idle sleeping
caffeinate -m wget url
# Avoid display from idle sleeping while watching netflix (just in case)
caffeinate -m /Applications/

Related Post