Не дозволяйте Mac спати під час запуску баш-скрипту, а потім дозвольте йому спати як звичайно після завершення


13

Я змусив свого Mac прокинутися протягом ночі і запустити rsync, щоб створити його. Це налаштовано за допомогою енергозбереження> графік.

Однак здається, що він повернеться до сну, перш ніж він зможе щось зробити, тому мені потрібно припинити його спати під час виконання сценарію bash, з якого запускається rsync.

Я подумав, що найкращий спосіб (якщо це можливо) - це команда встановити час очікування у режимі сну на "Ніколи" або дуже тривалий час очікування, перш ніж він буде rsyncs, а потім повернутися до нормального стану, як тільки він буде завершений. Чи є краще рішення для цього?


Повинен бути на суперпопулярному?
Кімвай

Відповіді:


18

Кофеїн

Наприклад:

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дивіться.


11

Mac OS X 10.8 (гірський лев) та новіші версії

Використовуйте caffeinateкоманду. Дивіться відповідь Натана Лонга або man caffeinateдетальніше.

Mac OS X 10.7 (Лев) та новіші версії

Він похований на сторінці керівництва, але у 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 для зміни налаштувань сну, що вимагає кореневого доступу та (припускаючи, що ви хочете бути хорошим громадянином) певним чином виявити поточні налаштування та змінити їх назад, коли ви закінчите.


2
pmset noidleзасуджуються сторінка людини говорить: This argument is deprecated in favor of caffeinate(8). Дивіться мою відповідь.
Натан Лонг

4

Спробуйте

man pmset

:-)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.