11

У меня есть мой Mac, чтобы проснуться ночью и запустить rsync, чтобы поддержать его. Это настраивается через Энергосбережение> Расписание.

Однако, похоже, что он возвращается в спящий режим, прежде чем сможет что-либо сделать, поэтому мне нужно остановить его во время выполнения сценария bash, из которого запускается rsync.

Я подумал, что лучший способ (если это возможно) - ввести команду для установки тайм-аута сна на "Никогда" или очень долгого тайм-аута до того, как он выполнит rsyncs, а затем вернуться к нормальному состоянию после его завершения. Есть ли лучшее решение для этого?

3 ответа3

15

Caffeinate

Например:

caffeinate -i rsync -avz someuser@somehost:somefolder /some/local/folder

Со страницы руководства:

EXAMPLE
     caffeinate -i make
        caffeinate forks a process, execs "make" in it, and holds an
        assertion that prevents idle sleep as long as that process
        is running.

Смотрите man caffeinate для деталей.

10

Mac OS X 10.8 (Mountain Lion) и выше

Используйте команду caffeinate . Смотрите подробности в ответе Натана Лонга или на man caffeinate .

Mac OS X 10.7 (Lion) и более ранние

Это скрыто на странице руководства, но pmset имеет очень простой режим для предотвращения сна. Если вы выполните команду pmset noidle ваш Mac будет бодрствовать, пока этот процесс не будет убит. Вот как это использовать в скрипте:

# launch process to prevent sleep and move it to the background
pmset noidle &
# save the process ID
PMSETPID=$!

... do stuff here ...
... don't fall asleep ...
... watch out for that tree!
... ok we're free and clear now ...

# kill pmset so the computer can sleep if it wants to
kill $PMSETPID

Это лучше, чем использовать pmset для изменения настроек сна, для чего требуется root-доступ и (при условии, что вы хотите быть хорошим гражданином) некоторый способ определения текущих настроек и их изменения, когда вы закончите.

4

Пытаться

man pmset

:-)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .