15

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

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

5 ответов5

22

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

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

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 .

3

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

2

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

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

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

1

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

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

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