crontab разбудить osx из сна

18

У меня есть crontab, который запускает определенную программу рано утром (после того, как я заснул) и закрываю ее снова позже утром (до того, как я проснусь). Но мой iMac не будет выполнять скрипт crontab, пока он спит.

Я вижу, что есть некоторые предпочтения, чтобы разбудить компьютер и снова включить его в указанное время, но есть ли способ сделать это с помощью crontab?

Nippysaurus
источник

Ответы:

28

cronне запускается, пока компьютер спит, поэтому у вас нет возможности получить запись crontab, чтобы разбудить компьютер. Тем не менее, вы можете запланировать запуск компьютера за одну или две минуты до выполнения задачи cron в Предпочтения >> Экономия энергии >> Расписание.

Стоит также отметить, что со времен Tiger Apple перенесла большинство запланированных заданий cronи сценариев init.rcв этот launchdпроцесс. Он предоставляет более подробные (но я думаю, громоздкие) средства контроля (через несколько файлов plist). Он также будет автоматически запускать пропущенные задачи, потому что компьютер спал, когда он просыпается. Взгляните на страницу « Apple Scheduling Timed Jobs» .

JTB
источник
Ссылка не работает.
откат
1
Отличный ответ, но вы можете разбудить его, когда ноутбук закрыт?
Пользователь
4

Другой способ запланировать пробуждение от сна - использовать pmset:

sudo pmset repeat wakeorpoweron MTWRFSU 03:45:00

launchd не может вывести компьютер из спящего режима, но он запускает задания, запланированные во время сна после пробуждения. Если другие ищут, как это сделать, вы можете, например, сохранить этот список как ~/Library/LaunchAgents/some.label.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>some.label</string>
  <key>ProgramArguments</key>
  <array>
    <string>say</string>
    <string>a</string>
  </array>
  <key>StartCalendarInterval</key>
  <dict>
    <key>Hour</key>
    <integer>23</integer>
    <key>Minute</key>
    <integer>59</integer>
  </dict>
</dict>
</plist>

Тогда беги launchctl load ~/Library/LaunchAgents/some.label.plist.

LRI
источник
3

Вы можете запланировать запуск своего Macintosh на панели настроек «Экономия энергии». Смотрите кнопку Расписание.

Ричард Хоскинс
источник
2

Вы можете посмотреть в Анакрон

Anacron выполняет периодические ежедневные, еженедельные и ежемесячные задачи на вашем Mac, даже если компьютер (например, ноутбук) проводит большую часть своего времени в спящем режиме или выключен. Anacron молча проверяет, когда вы перезагружаетесь и каждые шестьдесят минут, пока компьютер работает, чтобы увидеть, не устарели ли различные периодические сценарии, и запускает их при необходимости. Преимущество Anacron над многими другими решениями этой проблемы заключается в том, что он работает как правильный фоновый процесс Unix, не требует вмешательства пользователя и использует регулярные периодические сценарии.

Еще одно приложение, которое может сделать трюк, это Awaken

Брюс Маклеод
источник
1

cron не будет работать, пока OSX находится в спящем режиме.

Возможно, вы захотите взглянуть на cronwake (необходимо запустить google translate, так как сайт, по-моему, на японском) и anacron , или вы можете просто использовать Energy Saverприложение, чтобы запланировать время пробуждения для запуска сценария, а затем перевести его в режим сна.

Джон Т
источник