当前,当两个UPS之一死亡时,将触发doshutdown事件,并通过apccontrol执行默认脚本。所述doshutdown脚本忽略第二UPS,因为它们不是活动连接,并与停机正常进行。
为了使doshutdown事件有所关联,apcups的两个实例需要专门定制的配置文件。区别在于必须在其中执行事件脚本的目录中。
首次出现的主要特性 /etc/apcupsd/apcupsd.ups0.conf
SCRIPTDIR /etc/apcupsd/ups0
UPSNAME ups0
DEVICE /dev/ups0
PWRFAILDIR /etc/apcupsd/ups0
NOLOGINDIR /etc/apcupsd/ups0
NISPORT 3551
EVENTSFILE /var/log/apcupsd.0.events
对于ups1, /etc/apcupsd/apcupsd.ups1.conf
SCRIPTDIR /etc/apcupsd/ups1
UPSNAME ups1
DEVICE /dev/ups1
PWRFAILDIR /etc/apcupsd/ups1
NOLOGINDIR /etc/apcupsd/ups1
NISPORT 3552
EVENTSFILE /var/log/apcupsd.1.events
每个scriptdir应获得默认脚本的副本。
我们要自定义doshutdown脚本,该脚本不会直接关闭计算机,而是必须检查其他UPS是否仍在打开或处于关闭模式。
在doshutdown脚本的顶部,我们可以添加如下内容
对于ups0
if [ ! -f /tmp/ups1.is.down ]
then
touch /tmp/ups0.is.down
exit 99
fi
对于ups1
if [ ! -f /tmp/ups0.is.down ]
then
touch /tmp/ups1.is.down
exit 99
fi
状态99具有特殊含义,它告诉apccontrol停止正在进行的操作。这五行检查是否已创建另一个UPS-down-file。如果为否,则为ups关闭创建down-file,然后退出。如果是,则意味着另一台UPS已关闭,那么该UPS也将关闭,因此脚本应继续运行并关闭计算机。
这些文件/tmp/usp[01].is.down
指示ups [01]当前是否关闭。
重要提示:如果已在上一个会话中创建了这些文件,则apcupsd的init.d启动脚本应删除这些文件:
rm -f /tmp/usp[01].is.down
最后,应该为上面创建的目录/ etc / apcupsd / ups [01]赋予apcupsd用户(或运行实例的任何相关用户)访问权限。
chown -R apcupsd /etc/apcupsd/ups[01]
请查看详细的文档。
编辑固定/tmp/ups[01].is.down
名称,该名称.is
不见了。