Команда терминала для проверки закрыты ли крышки Mac Book Pro

Вопрос или проблема

Я использую OS X 10.8 (Mountain Lion). Мне интересно, есть ли команда терминала, чтобы проверить, закрыта ли крышка MacBook Pro в данный момент.

Причина, по которой я спрашиваю, заключается в том, что у меня запланированы задачи cron, которые выполняются каждые 30 минут. Однако crontab не выполняется, когда компьютер спит/гибернирует. Моё решение состояло в том, чтобы использовать pmset для планирования пробуждений каждые 30 минут. Однако мне нужен способ вернуть компьютер в спящий режим при условии, что крышка в данный момент закрыта. Я не хочу, чтобы мой компьютер был включен слишком долго с закрытой крышкой, т.е. включен всю ночь, когда я сплю, так как это может повредить экран.

Я использую Caffine, чтобы держать свой Mac включенным. Вы можете установить его на конкретный период времени. Затем остановить его или выключить компьютер.

Я предполагаю, что эта проблема уже решена (11 лет, 7 месяцев спустя…) Но у меня был тот же вопрос, и я нашел решение на SO здесь, и подумал, что опубликую его для других, кто ищет решение:

ioreg -r -k AppleClamshellState -d 4 | grep AppleClamshellState | head -1

это выдаст

  • | "AppleClamshellState" = Yes когда крышка закрыта и
  • | "AppleClamshellState" = No когда крышка не закрыта

Вы можете превратить это в булевое выражение с помощью

ioreg -r -k AppleClamshellState -d 4 | grep AppleClamshellState | head -1 | grep "Yes" -c

Проверено на MBP 2023 M3 Pro с Mac OS Sonoma 14.6.1

Ответ или решение

Проверка состояния крышки MacBook Pro: Как использовать терминальные команды

Если вы ищете способ проверить, закрыта ли крышка MacBook Pro на macOS 10.8 (Mountain Lion), то терминальные команды станут отличным решением. В этом ответе мы рассмотрим, как с помощью командной строки можно получить информацию о состоянии крышки вашего ноутбука, а также обсудим, как это можно интегрировать в задачи автоматизации.

Причины проверки состояния крышки

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

Команда для проверки состояния крышки

Для проверки состояния крышки на MacBook Pro вы можете использовать следующую команду в терминале:

ioreg -r -k AppleClamshellState -d 4 | grep AppleClamshellState | head -1

Эта команда делает следующее:

  • ioreg предоставляет информацию о состоянии устройств в системе.
  • -r указывает на рекурсивный поиск.
  • -k AppleClamshellState фильтрует вывод, чтобы отобразить только ключ AppleClamshellState, который указывает на состояние крышки.
  • -d 4 задаёт уровень глубины поиска.
  • grep AppleClamshellState фильтрует вывод для поиска нужной строки.
  • head -1 ограничивает вывод первой строкой, чтобы избежать избыточной информации.

Интерпретация результата

Если команда возвращает:

|   "AppleClamshellState" = Yes

Это означает, что крышка закрыта. Если вывод показывает:

|   "AppleClamshellState" = No

Крышка открыта.

Чтобы сделать это условием

Если вы хотите получить булевое значение (1 или 0) в зависимости от состояния крышки, используйте следующую команду:

ioreg -r -k AppleClamshellState -d 4 | grep AppleClamshellState | head -1 | grep "Yes" -c

Этот вариант возвращает 1, если крышка закрыта, и 0, если она открыта.

Интеграция в cron

Теперь, когда вы знаете, как проверять состояние крышки, вы можете интегрировать эту команду в ваши cron задачи. Например, вы можете создать скрипт, который проверяет состояние крышки и отправляет MacBook в режим сна, если крышка закрыта:

#!/bin/bash
if [ $(ioreg -r -k AppleClamshellState -d 4 | grep AppleClamshellState | head -1 | grep "Yes" -c) -eq 1 ]; then
    pmset sleepnow
fi

Затем добавьте этот скрипт в cron с помощью команды crontab -e, чтобы он выполнялся через заданные интервалы времени.

Заключение

Подводя итог, регулярная проверка состояния крышки MacBook Pro с помощью терминальных команд — это эффективный способ управления энергопотреблением вашего устройства. Используя вышеизложенные команды и подход, вы можете обеспечить оптимальную работу вашего ноутбука, избегая ненужного разряда батареи и перегрева экрана. Если у вас есть дополнительные вопросы или потребности, не стесняйтесь обратиться за подробной информацией или поддержкой.

Оцените материал
Добавить комментарий

Капча загружается...