Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

2004 г

apmd(8)

Тацуми Хосокава (Tatsumi Hosokawa),
Коё Хидетака (KOIE Hidetaka),
перевод В. Кравчук, OpenXS Initiative

НАЗВАНИЕ

apmd - демон мониторинга расширенного управления питанием (Advanced Power Management)

СИНТАКСИС

apmd [-d] [-f файл ] [-v]

ОПИСАНИЕ

Демон apmd следит за наступлением заданных событий подсистемы расширенного управления питанием (Advanced Power Management - APM) и, при наступлении одного из этих событий, выполняет соответствующую последовательность команд. Демон apmd обрабатывает только события, указанные в файле конфигурации; все остальные события игнорируются. Для каждого события, о котором уведомляет подсистема APM BIOS, демон apmd вызывает заданную в конфигурационном файле последовательность команд. Когда демон apmd контролирует запросы остановки/режима ожидания (suspend/standby requests), ядро эти запросы обрабатывать не будет. Поэтому, если необходимо выполнять действие при наступлении этих событий, надо явно задать соответствующие команды или вызовы встроенных функций в конфигурационном файле.

Демон apmd распознает следующие опции:

-d Запуск в режиме отладки. В результате, демон apmd запускается в приоритетном режиме, а не в фоновом.
-f файл Задает другой конфигурационный файл, файл , для использования вместо стандартного, /etc/apmd.conf .
-v Многословный режим работы.

При запуске демон apmd читает конфигурационый файл (по умолчанию - /etc/apmd.conf ) и передает набор событий, которые надо контролировать, драйверу устройства APM. При завершении работы демона драйвер устройства APM автоматически прекращает контроль событий.

Если процесс apmd получает сигнал SIGHUP , он перечитывает свой конфигурационный файл и уведомляет драйвер устройства APM о любых изменениях в конфигурации.

Демон apmd использует устройство /dev/apmctl для выполнения запросов ioctl(2) для контроля событий и управления подсистемой APM. Этот специальный файл устройства открывается в режиме исключительного доступа, поэтому в каждый момент времени может работать только один процесс apmd .

Когда демон apmd получает уведомление о событии от подсистемы APM, он запускает порожденный процесс для выполнения команд, указанных в конфигурационном файле, а затем продолжает работу в ожидании других событий. Порожденный процесс выполняет команды последовательно, в указанном порядке.

Пока демон apmd обрабатывает список команд для запросов SUSPEND / STANDBY , драйвер устройства APM ядра выдает уведомления подсистеме APM BIOS раз в секунду, так что BIOS знает, что есть еще не выполненные команды, и что запрос еще нельзя считать обработанным.

Демон apmd создает файл /var/run/apmd.pid , в котором записывает свой идентификатор процесса. Этот идентификатор можно использовать для остановки или переконфигурирования процесса apmd .

КОНФИГУРАЦИОННЫЙ ФАЙЛ

Структура конфигурационного файла демона apmd весьма проста. Например, конструкция:

apm_event SUSPENDREQ {
   exec "sync &&
   sync &&
   sync"; exec "sleep
   1"; exec "zzz";
   }

вызовет получение демоном apmd события APM " SUSPENDREQ " (которое может инициироваться закрытием ноутбука), при обработке которого трижды выполняется команда " sync ", затем демон ожидает 1 секунду и выполняет команду zzz ( apm-z ) для перевода системы в состояние останова.

Итак, конфигурационный файл содержит одну или более подобных конструкций со следующими компонентами:

Ключевое слово apm_event apm_event - это ключевое слово, свидетельствующее о начале конструкции, задающей обработку событий.

События APM Если необходимо выполнять одни и те же команды для разных событий, имена событий перечисляются через запятую. Поддерживаются следующие имена событий:
  • События, игнорируемые ядром, если работает демон apmd :
    STANDBYREQ
    USERSTANDBYREQ
    SUSPENDREQ в списке команд должна быть sync
    USERSUSPENDREQ в списке команд должна быть sync
    BATTERYLOW в списке команд должна быть только zzz
  • События, передаваемые демону apmd после обработки ядром:
    NORMRESUME
    CRITRESUME
    STANDBYRESUME
    POWERSTATECHANGE
    UPDATETIME
    CAPABILITIESCHANGE
    Уведомления о других событиях демону apmd не посылаются.
Команды В представленном выше примере три строки, начинающиеся с " exec " - это команды обработки события. Каждая строка должна заканчиваться точкой с запятой. Список команд обработки события надо брать в фигурные скобки, "{" и "}". Для выполнения команд демон apmd вызывает командный интерпретатор /bin/sh , точно так же, как и системный вызов system(3). Команды выполняются последовательно, пока не будет достигнут конец списка или пока очередная команда не вернет ненулевой статус выхода. Демон apmd сообщает о статусе выхода любой не сработавшей команды через системный вызов syslog(3), а затем отвергает запрос, посланный APM BIOS.

Встроенные функции Вместо команд можно также вызывать встроенные функции apmd . После имени встроенной функции надо указывать точку с запятой, так же, как и в конце строки команды. В настоящее время поддерживаются следующие встроенные функции:
  • reject : Отвергает последний запрос, выполненный подсистемой APM BIOS. Эту функцию можно использовать, чтобы отказаться от обработки запроса останова ( SUSPEND ) при закрытии ноутбука и перевода системы вместо этого в состояние ожидания ( STANDBY ).

ПРИМЕРЫ

Типичные команды в конфигурационном файле:

apm_event SUSPENDREQ {
   exec "/etc/rc.suspend";
   }

apm_event USERSUSPENDREQ {
   exec "sync && sync && sync";
   exec "sleep 1";
   exec "apm -z ";
   }

apm_event NORMRESUME, STANDBYRESUME {
   exec "/etc/rc.resume";
   }

# Обработка события resume  для мыши на последовательном порту:
# переинициализация демона moused(8), подключенного к этому порту.
#
#apm_event NORMRESUME {
# exec "kill -HUP `cat /var/run/moused.pid`";
#}
#
# Обработка события suspend  для пользователей жестких дисков ATA:
# выполняем standby  вместо suspend .
# #apm_event SUSPENDREQ {
# reject;
# exec "sync && sync && sync";
# exec "sleep 1";
# exec "apm -Z";
#}

ФАЙЛЫ

/etc/apmd.conf /dev/apmctl /var/run/apmd.pid

ССЫЛКИ

apm(4) , apm(8)

АВТОРЫ

Мицуру Ивасаки (Mitsuru IWASAKI) ( iwasaki@FreeBSD.org),
Коё Хидетака (KOIE Hidetaka) ( koie@suri.co.jp)

Определенный вклад внесли также:

Уорнер Лош (Warner Losh) ( imp@FreeBSD.org),
Хироши Ямашита (Hiroshi Yamashita) ( bluemoon@msj.biglobe.ne.jp),
Ёшихико Сарумару (Yoshihiko SARUMARU) ( mistral@imasy.or.jp),
Норихиро Кумагаи (Norihiro Kumagai) ( kuma@nk.rim.or.jp),
Накагава Ёшихиша (NAKAGAWA Yoshihisa) ( nakagawa@jp.FreeBSD.org) и
Ник Хильярд (Nick Hilliard) ( nick@foobar.org).

ИСТОРИЯ

Демон apmd появился в FreeBSD 3.3.

FreeBSD 4.6, 28 июня 1999 года

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...