处理 RPA(RS/6000 平台体系结构)特定的 EPOW(环境和 POwer 警告)事件并以 EPOW 事件处理的一部分的形式关闭系统(如果需要)。
rc.powerfail [ -h ] | [ [ -s ] [ -t [ mm ] ][-c [ ss ] ] ]
当 init 从内核接收到 SIGPWR 信号时,将由 /etc/inittab 文件启动 rc.powerfail 命令。rc.powerfail 命令使用 ioctl() 来确定系统状态。仅当 EPOW 事件发生时才应调用 rc.powerfail 命令。
下表中列出了由 rc.powerfail 处理的 EPOW 事件和由 rc.powerfail 完成的相应事件处理:
EPOW 类 | 描述 | rc.powerfail 完成的事件处理 | 示例 |
---|---|---|---|
1 | “操作系统”认为这些类型的错误是一般的散热问题。 | rc.powerfail 通过每 12 小时显示一个 cron 条目来警告当前登录系统的用户,直到这种情况消失。 | 冗余风扇故障。内部热量问题。 |
2 | “操作系统”认为这些类型的错误是一般的电源问题。 | rc.powerfail 通过每 12 小时显示一个 cron 条目来警告当前登录系统的用户,直到这种情况消失。 | 冗余交流电输入故障。 |
3 | 这些事件事件上非常严重,应立即关闭系统电源。 | rc.powerfail 将在 10 分钟后关闭系统,除非用户通过 -t 选项指定了另一个等待时间。 | 接近规格限制的环境温度。 |
4 | 这些类型的错误实际上极其严重,需立即中断系统。 | rc.powerfail 应在 20 秒钟后处理此事件。在这些情况下,rc.powerfail 将警告当前登录系统的用户,然后立即停机。 | 无交流电输入:全部电源均已停电。 |
5、7 | 这些类型的错误实际上极其严重,应在几微秒内解决掉。 | 由于应该在几微秒内处理这些错误,所以 rc.powerfail 将不处理这些事件。如果应由 rc.powerfail 控制这些情况,它将等至超出等待时间周期。 | 所有风扇都出现了故障,不存在冗余电源故障。 |
如前所述,在 EPOW 类 3 事件的情况下,关闭系统之前大约每 10 分钟将提供一次 rc.powerfail 命令。通过使用 /etc/inittab 文件的电源故障条目中的 -t 选项,用户可以修改这个时间。在最后 60 秒之前,将向所有仍然登录的用户发送一条消息,告诉他们离关机还有多少时间。如果在最后 60 秒钟的任何时间解决了这个事件,将中断系统关闭,并通知这些用户所有错误已解决。如果某个用户不愿意关闭系统,可以将 -s 选项添加到 /etc/inittab 文件中的命令内。
还是在 EPOW 类 3 事件的情况下,rc.powerfail 将允许在系统关闭之前执行环境特定的脚本(如果有的话)。 这些脚本位于 /usr/lib/epow/scripts 下,缺省情况下 rc.powerfail 将为完成这些脚本等待 10 秒钟。 可使用 -c 选项更改此等待时间。将把通过 -c 选项提供的值视为这些脚本的等待时间(以秒钟为单位)。
如果系统关机,不返回出口值。否则,rc.powerfail 命令返回下面的出口值:
0 | 正常条件。 |
1 | 语法错误。 |
2 | halt -q 失败 |
3 | shutdown -F 失败。 |
4 | 发生错误。使用 shutdown -F 立即关闭系统。 |
5 | 未定义状态。请联系您的服务代表。 |
访问控制:仅适用 root 用户。
rc.powerfail -h
chitab "powerfail::powerfail:/etc/rc.powerfail -s >dev/console 2>&1"
如果发生一般电源故障,init 将不会导致系统关闭。
chitab "powerfail::powerfail:/etc/rc.powerfail -t 30 >/dev/console 2>&1"
假定情况并不紧急,init 在系统关闭前将有 30 分钟的延迟。
/etc/inittab | 控制初始化过程。 |
machstat 命令、init 命令、chitab 命令、halt 命令和 shutdown 命令。