当电源断电时,让 UPS 在 Linux 中自动关闭计算机

当电源断电时,让 UPS 在 Linux 中自动关闭计算机

我很奇怪为什么我在 Google 上找不到任何有用的东西。

我正在使用一个便宜的UPS,如果出现电力问题(这种情况在整个东南亚很常见),它确实可以让我的电脑供电一段时间。

但是,如果我忘了关机,然后出门去商店买东西,该怎么办?或者我想下载游戏或其他重要的东西,而晚上忘了关机,该怎么办?

如果没有电,一定有一种方法可以“轻轻地”关闭计算机。

我正在使用 Ubuntu,执行“立即关机”就足够了。

我无法相信这是不可能的,因为我认为我的要求很常见。

我怎样才能做到这一点?

答案1

大多数 UPS(可能除了最便宜的 UPS 外)都具有此功能。否则,当您不在时,UPS 就没什么用了。如果您的 UPS 没有此功能,安全的做法是在无人看管时不要让计算机处于开启状态(休眠模式除外)。

数据连接

如果 UPS 正在工作,计算机就不知道市电断电了。计算机知道关机的唯一方法(尽管它仍然可以正常关机)是 UPS 能否传达情况。此功能需要 UPS 和计算机之间建立数据连接。

在计算机端,如果 UPS 是为单台个人计算机设计的,则通常采用 USB 连接。UPS 本身的端口可能有所不同。在许多 UPS 上,它看起来像电话插孔(不要与某些型号上用于电话线浪涌保护的实际电话插孔混淆)。UPS 附带数据连接所需的任何电缆。

在更先进的型号中,UPS 还使用此连接来传达状态信息,例如电池状况。

软件

您需要在计算机上安装软件才能使用此信息。UPS 通常与适用于 Windows 的软件捆绑在一起。Linux 通常需要额外的一两个步骤。一些发行版与通用程序或特定 UPS 制造商的程序捆绑在一起(可能仅适用于该制造商的产品)。

如果您的发行版没有,一些 UPS 制造商在其网站上提供 Linux 版本的软件供下载。因此,如果您想要某个特定品牌的 UPS,这是首先要检查的地方。Linux 的一个弱点是驱动程序软件的可用性更有限,并且实现比 Windows 更“动手”。一些硬件购买决策需要由 Linux 支持的可用性来驱动。

如果您想要某个特定品牌的 UPS,而他们不提供 Linux 软件,那么以下是最常见的选择:

  • apcupsd

    APC 的情况比较特殊。他们是最大的 UPS 制造商之一,拥有广泛的型号。他们已投资在 Linux 上支持和认证其型号。

    他们的免费apcupsd软件与一些发行版捆绑在一起,并且通常可在其他发行版的存储库中找到,可通过包管理器轻松选择和安装。虽然我从未使用过它,但它通常受到好评,并且似乎是当前事实上的标准。

    一个限制是它仅支持 APC 产品。但是,如果您没有充分的理由购买缺少 Linux 软件的品牌,那么从 APC 的产品中挑选是一种简单的选择。

  • 坚果

    如果你必须使用不提供 Linux 软件的制造商的 UPS,你很可能可以使用网络 UPS 工具 (NUT)。这是一款免费应用程序,可处理几乎所有与电源相关的控制、监控和管理。对于一台计算机上的 UPS 来说,它可能有点过头了,而且需要一些配置(对于新手来说不是最好的解决方案)。这通常在大多数发行版的存储库中可用。

    如果您正在考虑购买 UPS,而其唯一的软件选项是 NUT 之类的通用软件,我建议您先阅读手册,以确保您能够胜任配置它的任务。

  • 威力

    另一个在 Linux(和其他操作系统)中运行的通用程序是威力。除了浏览手册外,我个人对这个程序并不熟悉。我猜它没有被广泛使用,因为我在 SU 上找到的唯一提及是两个未解答的问题,这些问题来自无法让它检测 UPS 的人(关于 NUT 的问题也很少,但这些大多是关于使用可用数据的)。

    与 NUT 一样,WinPower 也需要详细的配置步骤,您需要 UPS 的技术手册来获取相关信息。与 NUT 一样,如果您打算依赖 WinPower,我建议您在购买缺少 Linux 软件的 UPS 之前,先阅读手册以确认您可以访问所需的技术信息,并确信您能够胜任配置任务。

答案2

我正在将 apcups 与刚买的 Cyber​​Power CP1000AVRLCDa 一起使用,它与我的 Linux Mint 机器运行良好。

您甚至可以在同一 UPS 上有多台计算机的情况下进行设置,其中一台计算机是主计算机并通过 USB 电缆连接到 UPS,其他计算机与该主计算机上的 apcupsd 通信,并且应配置为在主计算机关闭之前关闭。

但是,直接回答您的问题 - 您需要一种方法来检测断电。如果 UPS 不提供电源(通过某种“继电器”(开关),或通过以太网、串行或 USB),那么您将需要另一种方法来检测断电,以便关机。

我认为检测断电的一个愚蠢方法是使用另一台未连接到 UPS 的计算机,其唯一目的是在断电时停止与“受保护”的计算机通信,以便受保护的计算机知道电源刚刚断电并自行关闭。(这有意义吗?)

更好的方法是向 PC 输入某种输入,该输入会根据房间内交流电的存在而发生变化。除了另一台计算机,其唯一用途就是在断电时死机,您或许可以设置一个设备,当有电时将并行端口上的某个位设置为一个值,当断电时将其设置为相反的值。我能想到很多方法来实现这一点,从一个由电源供电的 LED 盒,该 LED 点亮光电二极管或类似物,然后以适当的方式拉动并行端口位,到一个由电源供电的锁存继电器,它使用自由触点适当地拉动并行端口位。在打开计算机之前,先将继电器锁存,以便您的计算机认为电源良好。然后,当断电时,继电器断开并保持关闭状态,告诉您的计算机关闭。

另一方面,如果您的电源可能会随机反弹几秒钟然后恢复,因此您不希望一次断电事件导致您的电脑死机,那么不要使用锁存继电器 - 使用连接到电源的“常规”继电器,从而提供电源状态的实时指示。在电脑上,观察那条线,如果一段时间内“无电”,则关闭。

注意 - 以上是关于如何检测计算机断电以便将其关闭的一些简短想法。我假设您具有一定程度的电子知识... 并且对直接连接到电源的任何东西都要非常小心!

相关内容