NUT 未关闭 UPS。14.04 服务器是否在运行级别 0 中阻止 USB 通信?

NUT 未关闭 UPS。14.04 服务器是否在运行级别 0 中阻止 USB 通信?

我最近在新的 Ubuntu 14.04 64 位服务器上安装了 Network UPS Tools (nut)。我使用的配置文件与旧的 Ubuntu 12.04 32 位服务器上的配置文件完全相同。

一切顺利,除了当我通过以下命令测试 14.04 服务器的自动关机时

sudo upsmon -c fsd

当系统因故障关闭时,UPS 并未关闭负载,因此服务器从未重新启动。

事实证明,我的 14.04 服务器上的 nut 版本与 12.04 服务器上的 init 脚本不同(较新)。所以我想,也许这些较新的脚本中存在错误。

为了弄清楚发生了什么,我断开了服务器与 UPS 电源插座的连接,并将其直接连接到公用电源插座,但保留了 USB 连接并启动了服务器。然后,我从终端控制台发送了以下命令:

sudo /sbin/upsdrvctl shutdown

UPS 关闭了负载,过了一会儿,又恢复了正常。

接下来,我临时修改了 /etc/init.d/halt 脚本,替换了以下代码段:

    # See if we need to cut the power.
    if [ "$INIT_HALT" = "POWEROFF" ] && [ -x /etc/init.d/ups-monitor ]
    then
            /etc/init.d/ups-monitor poweroff
    fi

有了这个:

    /sbin/upsdrvctl shutdown

原始代码调用“ups-monitor”,它是脚本“nut-client”的链接,在进行一些检查后,调用脚本“nut-server”,后者又发出命令“/sbin/upsdrvctl shutdown”来关闭 UPS 负载。

所以现在,有了这个临时的 mod,nut 脚本就不碍事了。然而,当我给出命令时

sudo upsmon -c fsd

系统崩溃了,但是UPS再次没有关闭负载。

难道是当运行 halt 脚本时,Ubuntu server 14.04 会阻止运行级别 0 上的 USB 通信吗???

相关内容