Посетитель нашего форума предложил нам подумать над интересной задачкой — как принудительно выключать компьютер под управлением Mac OS X в определённое время. Ключевое слово в предыдущей фразе — «принудительно». Думаем, что многие маководы знают: что в настройках системы, в пульте «Экономия энергии» можно настроить автоматическое включение, выключение, засыпание и пробуждение Мака по расписанию.

Но на практике этот способ отнюдь не идеален. Весьма вероятно, что на утро вы застанете Мак включённым, а на экране будет красоваться сообщение о том, что какая-либо из программ (например, Терминал или Evernote) инициировала отмену выключения.

Если вам нужно 100%-ное выключение Мака без всяких отговорок, то надо идти другим путём.

Разумнее всего создать стартовый агент — скрипт, который будет запускаться при включении компьютера и выполнять определённые действия.

В любом текстовом редакторе создайте файл следующего содержания:

[php]

Label
com.me.shutdown
ProgramArguments

shutdown
-h
now


StartCalendarInterval

Hour
22
Minute
50

[/php]

Обратите внимание на вторую половину файла — там задаётся время выключения компьютера.

Сохраните файл на Рабочий стол, затем переименуйте его в com.me.shutdown и поменяйте расширение на plist (полное название должно быть com.me.shutdown.plist). Затем откройте Терминал и выполните следующие команды (после первой нужно будет ввести пароль от вашего аккаута вслепую):

[php]sudo -s
mv ~/Desktop/com.me.shutdown.plist /Library/LaunchAgents
chown root /Library/LaunchAgents/com.me.shutdown.plist
launchctl load /Library/LaunchAgents/com.me.shutdown.plist[/php]

Теперь ваш Мак будет самопроизвольно выключаться в установленное время без каких-либо предупреждений и подтверждений. Главное — сами не пострадайте от этого :) Не забывайте вовремя сохранять документы, чтобы отключение не застало вас врасплох.

Поделитесь страницей через социальные сети

  • Rico-X

    В консоли выполняем в первый раз
    sudo echo «%users localhost=/sbin/shutdown» >> /etc/sudoers
    в дальнейшем когда необходимо задать время выключения просто вводим команду
    sudo shutdown -h время
    Если необходимо отменить выключение просто закрываем терминал. 

    • http://appstudio.org AppStudio

      кэп, спасибо!)
      но здесь совсем другой вопрос: нужна автоматизация процесса, чтобы выключение было регулярным. в том же терминале можно вбить задание в crontab, но launch agent создать проще

  • Rico-X

    О не совсем понял суть, так было бы еще проще, то-есть передать одну строку кронтабу сложнее чем выполнить всю эту инструкцию. А если надо выключать 2 раза в сутки, то даже страшно подумать надо писать 2 лаунч агента, нет пожалуй лучше скачать для этого специальную программу всего на 20mb из апстора только за 9.99$

  • Александр

    А вот такой вопрос: если нужно не выключать, а перезагружать,
    отключая при этом всех пользователей?

    Вопрос возник именно из-за того, что на Mac-server в Системных настройках-включена перезагрузка компа ночью по расписанию, но пререзагрузки не происходит, потому что «к компьютеру подключены другие пользователи».
    Хотя, по идее, все должны быть отключены, и когда с утра в этом диалоговом окне нажимаешь «Перехагрузить» — все перезагружается без проблем. Может, TimeMachine именно в это время копию создает, и не дает перегружаться?