Вопрос или проблема
Я использую Ubuntu на своем ноутбуке и мне нужно узнать (из командной строки), подключен ли кабель питания. Есть ли какой-либо системный файл, который фиксирует это? Или есть ли команда bash, которая может помочь?
Мне это нужно для скрипта, который будет вести себя иначе в зависимости от того, подключен кабель питания или нет.
$ cat /proc/acpi/ac_adapter/ACAD/state
state: on-line
или что-то подобное в зависимости от вашей архитектуры. В псевдодиректории /proc скрыто множество экспортов состояния машины.
$ cat /sys/class/power_supply/ADP1/online
1
[подключено питание]
$ cat /sys/class/power_supply/ADP1/online
0
Значение, которое нужно поставить вместо ADP1
, может различаться.
Используйте команду on_ac_power
.
Например:
on_ac_power && echo on_ac || echo on_batt
Коды состояния выхода команды:
0 (true) Система работает от сети
1 (false) Система не работает от сети
255 (false) Статус питания не может быть определен
Чтобы отобразить статус батареи на строке состояния wmii, я использую что-то подобное:
acpi -a | grep AC | cut -d: -f2
Если acpi
отсутствует, вы можете установить его с помощью:
sudo apt install acpi
Как предлагается здесь: https://askubuntu.com/questions/386949/how-to-check-if-the-ac-laptop-adapter-is-plugged-or-not, просто выполните:
acpi -a
который можно установить с помощью
sudo apt-get install acpi
Вывод покажет вам Adapter 0: on-line
, если подключен, или Adapter 0: off-line
, если отключен.
Для меня ADP1/online
не было доступно, так что мне пришлось посмотреть в другой файл в той же директории power_supply
, т.е.
cat /sys/class/power_supply/AC/online
Подключено : 1
Не подключено : 0
Ответ или решение
Вопрос проверки подключения сетевого кабеля на ноутбуке с установленной операционной системой Ubuntu может быть решён несколькими способами через командную строку. В данной статье мы рассмотрим наиболее эффективные методы и команды, которые могут быть использованы для этой цели, чтобы вы могли интегрировать их в свои скрипты и оптимизировать поведение системы в зависимости от подключения к сети.
1. Проверка через файлы в каталоге /proc
или /sys
Одним из способов проверки статуса питания является использование файлов, расположенных в специальных директориях, таких как /proc
и /sys
. Поскольку эти директории содержат виртуальные файловые системы, они предоставляют доступ к информации о состоянии оборудования:
Пример:
cat /proc/acpi/ac_adapter/ACAD/state
Этот файл может возвращать строку с состоянием: state: on-line
(соответствующий кабель подключен) или state: off-line
(кабель не подключен).
Другой путь заключается в использовании следующей команды:
cat /sys/class/power_supply/AC/online
Если результат равен 1
, это означает, что адаптер подключен, если 0
— не подключен. Однако учтите, что название устройства может варьироваться, вместо AC
может быть ADP1
или другое, в зависимости от вашей системы.
2. Использование утилиты acpi
Утилита acpi
позволяет получить информацию о состоянии питания и других характеристиках батареи и адаптера. Если acpi
не установлена, вы можете добавить её с помощью следующей команды:
sudo apt install acpi
Пример:
После установки утилиты вы можете использовать команду:
acpi -a
Вывод будет содержать информацию о состоянии адаптера: Adapter 0: on-line
(подключен) или Adapter 0: off-line
(не подключен).
Можно также использовать следующую команду, чтобы получить только статус:
acpi -a | grep AC | cut -d: -f2
3. Команда on_ac_power
Альтернативный способ — использование команды on_ac_power
, которая возвращает статус подключения к сети. Для выполнения команды просто используйте следующий синтаксис:
on_ac_power && echo "on_ac" || echo "on_batt"
Команда возвращает статус:
- Код возврата
0
означает, что компьютер подключен к электроэнергии. - Код возврата
1
— система работает от батареи. - Код 255 указывает на то, что статус питания не может быть определён.
Заключение
Вы можете использовать один или несколько из перечисленных методов для проверки подключения к сети через командную строку в Ubuntu. Эти возможности позволяют получить актуальную информацию о состоянии питания, обеспечивая гибкость в скриптах и улучшая управление системой.
Используя команды и методы, описанные выше, вы сможете эффективно контролировать поведение вашего ноутбука в зависимости от подключения к сети, что крайне важно для оптимизации использования ресурсов и энергосбережения.