Next Previous Contents

5. 自己动手指南

这□的讨论是针对单调模式的 UPS 控制而写就的。然而, 大部分的过程对单调的 UPS 与聪明的 UPS 几乎是一样的。最大的不同在於 UPS 监控程式 (基本上是 powerd) 如何与 UPS 沟通。

在开始之前,我建议以下的工作流程:

5.1 您所需的工作 (总结)

5.2 这应该是做什麽工作的?

UPS 的工作

当电力消失时, UPS 持续供应电脑所需的电力, 并以送出重置讯号或是在它的控制阜上打开连接讯号以通知电脑电力消失了。

讯号缆线的工作

讯号缆线是设计为当 UPS 送出重置讯号时,会使得特殊的序列阜控制接脚 (基本上是 DCD) 出现高电位。

Powerd 的工作

powerd 程式负责监视序列阜。它保持著 UPS 所需而升高 / 降低序列阜控制接脚的高 / 低电位 (基本上, DTR 接脚必须保持在高电位且关闭 UPS 的接脚必须保持在低电位) 。当 powerd 发觉控制接脚变成高电位,它会在 /etc/powerfail 档中写入 FAIL 这个字并送 SIGPWR 讯号给 init 行程。 当控制接脚再次变回低电位时,它会在 /etc/powerfail 档中写入 OK 这个字并送 SIGPWR 讯号给 init

Init 的工作 (除上述之外它负责所有的工作)

当它接到了 SIGPWR 讯号,它会检查 /etc/powerfail 档。 如果□头是 FAIL 这个字眼它会执行 /etc/inittab 档中 powerfail 那一行的指令。如果□头是 OK 这个字它则执行 inittab 档中 powerokwait 那一行的指令。

5.3 如何设定好所有的工作

以下我们假设您有一条可以和 powerd 正常工作的讯号缆线。 如果您不确定您的讯号缆线是否可以工作 (或它如何工作),请参考 讯号缆线反向分析及修改 power.c 一节,那儿有关於少见的讯号缆线处理及重新设定 powerd.c 的资讯。 讯号缆线反向分析及修改 power.c<@ref>serial-port序列阜接脚的指定 及 讯号缆线反向分析及修改 power.c<@ref>serial-port序列阜接脚的指定<@ref>ioctl有关读写 RS232 这两节也将对您有帮助。

如果您需要制作一条讯号缆线,请见 如何制作讯号缆线 的详细说明,以及 如何制作讯号缆线<@ref>ups-specificUPS 资料节选 一节中有关您的 UPS 的小节。 後者可能也包含了制造商所提供的讯号缆线的相关资讯。 或许您应至少将 如何制作讯号缆线<@ref>ups-specificUPS 资料节选<@ref>ups-specificUPS 资料节选 中所有的小节浏览过一遍,因为每一小节都会有一些额外的一般性资料能对您有帮助。

恭喜您! 您的 Linux 系统现在已在 UPS 的保护下, 且它将会在电力耗尽之前安全地关机了。

5.4 进一步的改善


Next Previous Contents