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

18476
Nippysaurus

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

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

15

5 ответов на вопрос

21
jtb

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

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

Ссылка не работает. retracile 12 лет назад 0
Отличный ответ, но вы можете разбудить его, когда ноутбук закрыт? User 7 лет назад 1
4
user495470

Другой способ запланировать пробуждение от сна - использовать 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
Richard Hoskins

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

2
Bruce McLeod

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

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

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

1
John T

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

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