Запишитесь на Mac, только один раз

18

Можно ли запланировать Mac для сна только один раз? Я знаю, что могу установить расписание для этого, но я хочу иметь контроль над ним.

Поэтому иногда я ложусь спать, но оставляю передачу файлов, и я хочу, чтобы Mac спал примерно через час. Так как же мне поступить так, не устанавливая долгосрочный график?

Gary
источник
2
Если вы загружаете из Терминала, вы можете объединить обе команды, подобные следующим: sudo sh -c 'wget http://download.com/file.zip; pmset sleepnow'Команда сна будет выполняться только при выходе из wget.
Overbryd

Ответы:

28

Команда pmsetтерминала должна делать то, что вы хотите. Следующее действие переведет компьютер в спящий режим в 23:45:00 2 декабря 2014 года. Команда должна быть запущена из учетной записи администратора:

sudo pmset schedule sleep "12/02/14 23:45:00"

Формат даты MM / DD / YY не может быть изменен; поэтому, если вы привыкли к другому формату, будьте осторожны.

Если вы делаете это на регулярной основе, вы можете написать функцию и сохранить ее в своем ~/.profile:

# Schedule sleep in X minutes, use like: sleep-in 60
function sleep-in() {
  local minutes=$1
  local datetime=`date -v+${minutes}M +"%m/%d/%y %H:%M:%S"`
  sudo pmset schedule sleep "$datetime"
}
Кент
источник
2
Я получаю сообщение об ошибке при вызове функции sleep-in:local:2: not an identifier: 23:35:31. Оказывается (по крайней мере, на моей установке (zsh)), что вам нужно обернуть это выражение обратной даты в двойные кавычки. Так и сделайте:local datetime="`date -v+${minutes}M +"%m/%d/%y %H:%M:%S"`"
Мэтт Додж
Сопутствующая функция для отмены снов (замените "\ n" фактическими новыми строками): function sleep-cancel-all() {\n NUM_OF_SLEEPS=$(pmset -g sched | wc -l)\n if [[ $NUM_OF_SLEEPS -gt 0 ]]; then\n # The first line of output is a header, ignore it.\n NUM_OF_SLEEPS=$(expr $NUM_OF_SLEEPS - 1)\n seq $NUM_OF_SLEEPS | xargs -Iz sudo pmset schedule cancel 0\n fi\n }\ n
KFunk
7

По умолчанию это невозможно сделать с помощью опций, имеющихся в настройках системы.

введите описание изображения здесь

Но вы можете сделать это из командной строки с помощью простой команды:

sleep 10; osascript -e 'tell application "System Events" to sleep'
  • sleep 10приостановить выполнение следующей команды на 10 секунд. Если вы хотите минуты или часы, вы должны изменить 10 на количество секунд, которое вы хотите.
  • osascript -e 'tell application "System Events" to sleep' положить компьютер спать.
jherran
источник
1
С GNU Coreutils, sleepпринимает аргументы , как 10s, 5m, в 3hтечение секунд, минут и часов соответственно.
AT
1

Все вышеприведенные ответы работают, но если вы хотите делать это регулярно, я рекомендую программное обеспечение Power Manager , которое позволяет легко настраивать время ожидания как для одного, так и для повторяющихся событий (гораздо проще, чем с помощью команд терминала, в мое мнение). Программное обеспечение относительно дорогое (50 долларов), но есть бесплатная 30-дневная пробная версия со всеми функциями. Вы также можете управлять Power Manager со своего iPhone, что хорошо, если вы находитесь вдали от компьютера, но хотите установить его в режим сна или выключить.


источник
1

Для управления питанием вашего Mac с вашего iPhone в локальной сети я использовал Off Remote, который также может запланировать в течение следующих 24 часов системное действие (Завершение работы, Блокировка, Перезапуск, Выход из системы, Спящий режим) и стоит всего 3 доллара США в iOS. хранить, но требует установки дополнительного вспомогательного приложения на вашем Mac, чтобы получить инструкции от приложения iPhone.

В другом ответе предлагается использовать программное обеспечение Power Manager, которое стоит 50 долларов, но я бы предложил программное обеспечение Keyboard Maestro за 36 долларов, которое немного менее интуитивно понятно, чем Power Manager, но обладает большей гибкостью, чем управление питанием. В поисках возможности спланировать мой Mac для сна, я вспомнил, что у меня есть эта утилита и смог быстро перетащить макрокомпоненты в KM, чтобы создать скрипт, который приостанавливался на определенный период времени, а затем переводил мой Mac в спать:

Скрипт маэстро клавиатуры, чтобы уложить Mac спать через 2 часа

… В Keyboard Maestro также есть действие, чтобы также запланировать запуск макросов (для отключения Mac, выключения, перезагрузки и т. Д.) В назначенное время:

Клавиатурный триггер для макросов, основанный на времени и днях недели

Клавиатура Maestro является более дешевой и намного более надежной для разработки макросов, которые могут улучшить использование вашего Mac, но есть немного больше кривой обучения, чем приложение Power Manager.

Алан Кук
источник