Мне интересно, почему я не смог найти ничего полезного в Google.
Я использую дешевый ИБП, который действительно обеспечивает питание моего компьютера в течение некоторого времени, если возникают какие-то проблемы с электричеством (они очень распространены во всей Юго-Восточной Азии).
А что, если я, скажем, оставлю машину включенной и выйду из дома что-нибудь купить в магазине? Или захочу скачать игру или что-нибудь еще важное, а машину оставлю включенной ночью?
Должен быть способ «мягко» выключить компьютер, если нет электричества.
Я использую Ubuntu, и мне достаточно просто выполнить команду «shutdown now».
Я не могу поверить, что это невозможно, потому что, по-моему, мои требования вполне обычны.
Как мне этого добиться?
решение1
Большинство ИБП (вероятно, все, кроме самых дешевых) оснащены этой функцией. В противном случае ИБП будет бесполезен, когда вас нет рядом. Если у вашего ИБП такой функции нет, то безопаснее не оставлять компьютер включенным (в режиме, отличном от спящего), когда он без присмотра.
Подключение для передачи данных
Если ИБП выполняет свою работу, компьютер не знает, что отключилось питание. Единственный способ для компьютера узнать о необходимости выключения, хотя он все еще может сделать это изящно, — это если ИБП сможет сообщить о ситуации. Эта функция требует наличия соединения между ИБП и компьютером.
На стороне компьютера это обычно USB-подключение, если ИБП предназначен для одного персонального компьютера. Сам порт на ИБП может быть разным. На многих он выглядит как телефонный разъем (не путать с настоящим телефонным разъемом на некоторых моделях для защиты от перенапряжения на телефонной линии). ИБП поставляется с любым кабелем, необходимым для подключения данных.
В более продвинутых моделях ИБП также использует это соединение для передачи информации о состоянии, например, о состоянии батареи.
Программное обеспечение
Вам необходимо программное обеспечение на компьютере, чтобы использовать эту информацию. Обычно ИБП поставляется в комплекте с программным обеспечением для Windows. Linux часто требует дополнительных шагов. Несколько дистрибутивов поставляются в комплекте либо с общей программой, либо с программой от конкретного производителя ИБП (которая, скорее всего, будет работать только с продукцией этого производителя).
Если в вашем дистрибутиве этого нет, некоторые производители ИБП предлагают версию своего программного обеспечения для Linux, доступную для загрузки на их веб-сайте. Так что, если вам нужна конкретная марка ИБП, это первое место, где нужно проверить. Одной из слабостей Linux является то, что программное обеспечение драйверов более ограничено в доступности, а реализация более «практична», чем в Windows. Некоторые решения о покупке оборудования должны приниматься с учетом доступности поддержки Linux.
Если вам нужен ИБП определенной марки, а они не предлагают программное обеспечение Linux, вот наиболее распространенные варианты:
apcupsd
APC — это особый случай. Это один из крупнейших производителей ИБП с широким ассортиментом моделей. Они инвестировали в поддержку и сертификацию своих моделей в Linux.
Их бесплатноapcupsdпрограммное обеспечение поставляется с несколькими дистрибутивами и, как правило, доступно в репозиториях других дистрибутивов, легко выбирается и устанавливается через менеджер пакетов. Хотя я никогда им не пользовался, оно, как правило, пользуется хорошей репутацией и, по-видимому, является текущим стандартом де-факто.
Одним из ограничений является то, что он поддерживает только продукты APC. Однако, если у вас нет веских причин покупать бренд, в котором отсутствует программное обеспечение Linux, выбор из предложений APC — простой вариант.
ОРЕХ
Если вам абсолютно необходим ИБП от производителя, который не предлагает программное обеспечение Linux, вы, скорее всего, сможете использоватьСетевые инструменты ИБП (NUT). Это бесплатное приложение, которое управляет, контролирует и управляет практически всем, что связано с питанием. Это, вероятно, излишне для ИБП на одном компьютере, и оно требует некоторой настройки (не лучшее решение для новичков). Оно, как правило, доступно в репозиториях большинства дистрибутивов.
Если вы подумываете о покупке ИБП, для которого единственным вариантом программного обеспечения является стандартное ПО типа NUT, я настоятельно рекомендую вам сначала прочитать руководство, чтобы убедиться, что вы справитесь с задачей его настройки.
WinPower
Еще одна универсальная программа, работающая в Linux (и других ОС), — этоWinPower. Я лично не знаком с этой программой, кроме беглого просмотра руководства. Я предполагаю, что она не так широко используется, потому что единственные упоминания, которые я смог найти на SU, были два неотвеченных вопроса от людей, которые не смогли заставить ее обнаружить UPS (есть также всего несколько вопросов о NUT, но они в основном об использовании доступных данных).
Как и NUT, WinPower также требует подробного этапа настройки, и вам понадобится техническое руководство для вашего ИБП для получения информации. Как и в случае с NUT, если вы планируете положиться на WinPower, я настоятельно рекомендую вам сначала прочитать руководство, чтобы убедиться, что у вас есть доступ к необходимой технической информации, и убедиться, что вы справитесь с задачей его настройки, прежде чем покупать ИБП, в котором отсутствует программное обеспечение Linux.
решение2
Я использую apcups с недавно купленным CyberPower CP1000AVRLCDa, и он отлично работает с моими машинами Linux Mint.
Вы даже можете настроить его в ситуации, когда к одному ИБП подключено несколько компьютеров: один из них является главным и подключается к ИБП через USB-кабель, а остальные взаимодействуют с apcupsd на этом главном компьютере и должны быть настроены на выключение до выключения главного компьютера.
Однако, непосредственно к вашему вопросу - вам нужен способ обнаружения отключения питания. Если ИБП не подает его (через какое-то 'реле' (переключатель), или через ethernet, или последовательный порт, или USB), то вам понадобится другой способ обнаружения потери питания, чтобы вы могли отключиться.
Полагаю, глупым способом обнаружения потери электроэнергии было бы иметь другой компьютер, не подключенный к ИБП, единственной целью которого является прекращение взаимодействия с «защищенным» компьютером при потере электроэнергии, чтобы защищенный компьютер знал, что питание только что отключилось, и выключился сам. (Это имело какой-то смысл?)
Лучшим способом было бы сделать какой-то вход для вашего ПК, который меняется в зависимости от наличия питания переменного тока в комнате. Помимо другого компьютера, единственное предназначение которого — умереть при потере питания, вы, возможно, могли бы настроить устройство, которое устанавливает бит на параллельном порту на одно значение, когда питание есть, и на противоположное значение, когда питание пропадает. Я могу придумать много способов сделать это, от коробки со светодиодом, работающим от сети, который освещает фотодиод или что-то подобное, которое затем соответствующим образом вытягивает бит параллельного порта, до реле с фиксацией, которое питается от сети и которое использует свободные контакты, чтобы соответствующим образом вытянуть бит вашего параллельного порта. Перед тем, как включить компьютер, сначала зафиксируйте реле, чтобы ваш компьютер увидел питание как хорошее. Затем, когда питание пропадает, реле отключается и остается выключенным, сообщая вашему компьютеру о необходимости выключиться.
С другой стороны, если ваше питание может случайно подпрыгивать на несколько секунд, а затем восстанавливаться, и вы не хотите, чтобы единичное отключение питания убило ваш ПК, то не используйте реле с фиксацией — используйте «обычное» реле, подключенное к электросети, и таким образом обеспечивайте индикацию состояния питания в реальном времени. На ПК следите за этой линией, и если она будет «нет питания» в течение некоторого времени, выключите его.
Примечание: выше приведен довольно краткий набор идей о том, как обнаружить потерю питания на вашем компьютере, чтобы вы могли его выключить. Я предполагаю, что вы имеете некоторый уровень понимания электроники... И будьте ОЧЕНЬ ОСТОРОЖНЫ со всем, что напрямую подключено к электросети!