3

Put OS X to sleep via command-line

When connecting to an OS X box via SSH, you may want to put it to sleep after you’re done.

This is no system call to put the computer to sleep that I know of. However, Applescript can do it, and it is trivial to call the OSAScript interpreter in bash.

The following script puts the computer to sleep:

#!/bin/bash

osascript -e 'tell application "System Events" to sleep'

Edit: found a better way!

I don’t know if this is specific to Snow Leopard, but the following command will work as well without having to use Applescript or administrator rights:

pmset sleepnow

3 Responses

  • chic
    July 30, 2010 at 4:48 pm

    there is: sudo shutdown -s now
    to not have to enter password you have to add a line with: sudo visudo

    • Florent
      July 31, 2010 at 4:20 am

      Hey, that’s neat! I didn’t know that option was in shutdown at all. :)

      I like the fact that Applescript doesn’t require to be superuser, but using the system’s “shutdown” command might be more appealing to some people. Thanks for the tip!

  • chic
    July 31, 2010 at 3:49 pm

    with -h you halt and -r reboot
    instead of now you can specify a time
    visudo allow to grant users access to sudo commands
    without be a sudouser
    for example if you add :

    %users ALL=/sbin/shutdown
    then every users can use shutdown from everywhere

    %admin ALL=/sbin/shutdown
    grant to admin

    me localhost=/sbin/shutdown
    grant to user me from localhost

Leave a Reply

2012 — Upon my shoulder

Creative Commons License
This work is licensed under a Creative Commons Attribution 3.0 Unported License.