Как можно отключить управление ПК программой apcupsd и передать эту функцию специальному скрипту?

Как устранить проблему, при которой ПК и бесперебойник отключаются моментально после выдергивания кабеля питания из розетки, когда бесперебойник подключен по USB? Выводится следующая информация в journalct -u apcupsd.
  • 4 октября 2023 г. 12:07
Ответы на вопрос 2
Для отключения управления ПК программой apcupsd и передачи этой функции специальному скрипту, вам потребуется выполнить следующие действия:

1. Откройте файл конфигурации apcupsd для редактирования. В большинстве дистрибутивов Linux он находится по пути /etc/apcupsd/apcupsd.conf.

2. Найдите строку с параметром UPSMODE и установите его значение в none. Это отключит управление ПК программой apcupsd.
   ```
   UPSMODE none
   ```

3. Сохраните изменения и закройте файл конфигурации.

4. Создайте специальный скрипт, который будет выполнять необходимые действия при отключении бесперебойного питания.

5. Откройте файл, который обрабатывает событие отключения питания при помощи apcupsd. В большинстве дистрибутивов Linux это файл /etc/apcupsd/apccontrol.

6. В этом файле найдите участок кода, который обрабатывает событие "ONBATT". Закомментируйте или удалите этот участок кода, так чтобы лишний раз не отключался ПК после выдергивания кабеля питания из розетки.
   ```
   #онбатт)
   #удалите эту часть кода или закомментируйте ее
   #;;
   ```

7. Внесите изменения в скрипт, который должен обрабатывать событие отключения бесперебойного питания. Передайте необходимые действия для обработки этого события в вашем специальном скрипте.

После выполнения этих действий, управление ПК программой apcupsd будет отключено, а функции будут переданы вашему специальному скрипту.

Чтобы устранить проблему с моментальным отключением ПК и бесперебойника после выдергивания кабеля питания, вам нужно узнать причину проблемы, которая выводится в журнале journalct -u apcupsd. Она может быть связана с настройками программы, подключением по USB или самих устройств.

1. Откройте терминал и выполните следующую команду для просмотра вывода журнала:
   ```
   journalctl -u apcupsd
   ```

2. Изучите вывод журнала, чтобы определить причину проблемы. Обратите внимание на ошибки, сообщения или предупреждения, которые могут указывать на проблему с подключением или настройками.

3. Если вы обнаружите какие-либо ошибки или предупреждения, попробуйте внести соответствующие изменения в файл конфигурации apcupsd, чтобы исправить проблему. Затем перезапустите службу с помощью команды:
   ```
   sudo systemctl restart apcupsd
   ```

4. Если проблема не устраняется путем изменения настроек программы, возможно, вам потребуется проверить физическое подключение устройства к ПК. Проверьте, правильно ли подключен кабель USB между бесперебойником и ПК, а также убедитесь, что кабель питания бесперебойника надежно подключен к розетке.

5. Если проблема по-прежнему не устран
Чтобы исправить быстрое выключение ПК и ИБП, я установил значения по умолчанию для всех конфигураций. После этого ПК проработал около 15 минут. 

Я нашел статью в Интернете, которая объясняла, как запретить apcupsd управлять питанием ПК. Чтобы это сделать, мне нужно было закомментировать в файле apccontrol строки, отвечающие за выключение ПК и отправку сообщения wall. 

Однако у меня возникла проблема: статус оставался "SHUTTING DOWN" после восстановления питания от сети. 

Я решил эту проблему с помощью следующего кода на Python:
result = await aioapcaccess.request_status(host='localhost', port=3551)
if float(aioapcaccess.split_unit(result["LINEV"])[0]) > 170 and result['STATUS'] == 'SHUTTING DOWN':
    subprocess.run('sudo systemctl restart apcupsd.service', shell=True, check=True) 
Похожие вопросы