Apcupsd и решение проблемы с включением

Как то отключали электричество, и я столкнулся с любопытной проблемой, бесперебойник разрядился и выключил компьютер, но при возобновление подачи электроэнергии компьютер не включился, а я ведь был на 100% уверен, что у меня все настроено правильно. Ковыряния BIOS и гугление вопроса выдало мне, что многие материнки десктопных умеют только в Restore on AC Power Loss = Last state(последние состояние), то есть, если бесперебойник аккуратно выключает компьютер, то Last State у нас Off(Выключенный). Давайте сделаем, так, что бы наш компьютер аккуратно завершил все службы, и как бы перешел в состояние halt, и когда отключиться бесперебойник(а он отключится через несколько секунд после достижения halt) у нас будет Last State равный On


Первое, что нам нужно сделать, это выставить в BIOS: Restore on AC Power Loss = Last State, теперь устанавливаем apcupsd pacman -S apcupsd и приступаем к настройке:
/etc/apcupsd/apcupsd.conf
#Имя упса, если делаете все для десктопа, то особо не важно, что вы тут понапишите
UPSNAME APC

#Тип кабеля, надеюсь у вас usb
UPSCABLE usb
#И вновь usb
UPSTYPE usb
#Это директива в принципе не нужна, если мы используем  usb
DEVICE

#Период опрос упса в секундах
#POLLTIME 60

#Расположение lock файла
LOCKFILE /var/lock/


#Директория где располагаются скрипты
SCRIPTDIR /etc/apcupsd

#Директория где будет создан flag файл, обозначающий сбой питания
PWRFAILDIR /etc/apcupsd

# NOLOGINDIR <path to nologin directory>
NOLOGINDIR /etc


#Задержка между обнаружением сбоя электропитания и отсылкой события onbattery
ONBATTERYDELAY 10


#Уровень заряда батареи при котором будет послал сигнал выключения компьютеру
BATTERYLEVEL 15

#Оставшееся время работы компьютера при котором будет инициализировано выключение
MINUTES 4


# Задержка после которой начнется выключение компьютера, 0 - отключено
TIMEOUT 0

# Таймаут об оповещение пользователей
ANNOY 300

# Задержка перед сбоем
ANNOYDELAY 60

# The condition which determines when users are prevented from
# logging in during a power failure.
# NOLOGON <string> [ disable | timeout | percent | minutes | always ]
NOLOGON disable

#задержка перед отключение бесперебойника после инициализации выключения компьютера
KILLDELAY 0
Остальные параметры не критичны. Теперь нам надо отредактировать скрипт выключения компьютера. Открываем файлик и находим там следующее
/etc/apcupsd/apccontrol
    doshutdown)
        echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
        ${SHUTDOWN} -h now "apcupsd UPS ${2} initiated shutdown"
    ;;
и меняем на:
    doshutdown)
        echo "UPS ${2} initiated Shutdown Sequence" | ${WALL}
        ${SHUTDOWN} -H now "apcupsd UPS ${2} initiated shutdown"
    ;;
Теперь при инициализации выключения компьютера, он будет переходить в режим halt.
Кстати проверить есть ли связь с бесперебойником можно командой apctest.
Так остался еще один момент, это отключение самого бесперебойника, в этом нам поможет systemd.
Создаем файл со следующимм содержанием:
/lib/systemd/system-shutdown/apcupsd.shutdown
#!/bin/sh

if [ -f /etc/apcupsd/powerfail ]; then
    echo
    echo "APCUPSD will now power off the UPS"
    echo
    /etc/apcupsd/apccontrol killpower
fi
Не забываем включить и запустить службу apcupsd systemctl enable apcupsd.service && systemctl start apcupsd.service

Вот вроде бы и все, всем безопасных выключений.

P.S.: Вдруг у вас бесперебойник использует Сom порт, и c Apcupsd ничего не вышло посмотрите в сторону nut.

Комментарии ()

    Авторизация

    GitHubGoogleVkontakteYandex
    Есть вопрос или предложение пиши в Telegram @cloudsv

    MTProto прokси для Telegram

    Прямой эфир

    Diego mont 25 мая 2023, 07:04
    Полезные боты в Telegram 2
    cloudsv 24 апреля 2023, 17:56
    Обновление Scala Rider G4 52
    cloudsv 12 ноября 2022, 19:16
    Установка и настройка minidlna 3
    cloudsv 03 ноября 2022, 03:42
    Настройка прокси mtproto для Telegram 52
    cloudsv 03 января 2022, 10:50
    Let's Encrypt это легко и просто 4
    cloudsv 10 сентября 2020, 13:17
    MySQL Workbench падает при подключении 2
    cloudsv 05 августа 2020, 11:57
    Мне вчера стукнуло 34 4
    cloudsv 07 августа 2023, 22:56
    Linux Asus ROG x13 flow 2022 GV301RE и Linux 0
    cloudsv 15 апреля 2023, 16:23
    Linux Уведомление о смены workspace в X11 Linux 0
    cloudsv 17 октября 2020, 09:55
    Linux Отключить DHCP IPv6 в systemd 0
    cloudsv 30 июля 2020, 21:54
    О жизни Мне вчера стукнуло 34 4
    cloudsv 15 апреля 2020, 15:45
    Linux Основные hotkeys редактора Vim 0
    cloudsv 01 октября 2019, 08:00
    Linux Локальный редирект порта в Linux 0
    cloudsv 25 августа 2019, 16:14
    О жизни Социальная сеть от Яндекса Aura 0
    cloudsv 30 июля 2019, 21:34
    О жизни 33 year old 0
    cloudsv 25 июня 2019, 18:29
    Telegram Полезные боты в Telegram 2