Next Previous Contents

5. 自己動手指南

這�堛滌Q論是針對單調模式的 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 檔。 如果�媕Y是 FAIL 這個字眼它會執行 /etc/inittab 檔中 powerfail 那一行的指令。如果�媕Y是 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