当服务器的 UPS 充电完成时,我需要生成一条短信/电子邮件警报。我们有一个连接到主板的汽车电池,用作 UPS(http://www.mini-box.com/M2-ATX-160w-Intelligent-Automotive-DC-DC-Power-Supply) 当此设备检测到电池电压降低时,它会向主板发送一个 ON 脉冲。Ubuntu(我使用的是版本 11)不知何故检测到了此脉冲并显示一个屏幕,告知 ubuntu 将在 60 秒内关闭。我需要执行一个脚本来调用 web 服务来通知这种情况。我该如何捕获该警报?我也尝试过在 rc0.d 中使用脚本,但它没有调用我的 WS(似乎在执行之前网络已关闭)。我如何在网络关闭之前在运行级别 0 中执行某些操作?
答案1
也许有一种更干净的方法来实现这一点,但是以下方法在我的 Ubuntu 12.04 上运行良好(抱歉,手上没有 11)。
您应该会在下面/etc/rc0.d
找到一个名为的文件S35networking
,它实际上是一个链接/etc/init.d/networking
。
在此文件中找到stop)
语句case
并在此处的第一行添加命令行/脚本。它将在 NIC 关闭之前执行。
例如:
case "$1" in
start)
....
;;
stop)
send_sms_email
...
;;
....
esac
总而言之,我只是建议修改系统init.d
网络脚本以在事件中添加您的命令stop
。
它会起作用,但再一次它可能不是最干净的方法...但它是一种方法...