Attualmente, quando uno dei due UPS muore, il doshutdown viene attivato l'evento ed esegue lo script predefinito tramite apccontrol . Il arresto del sistema lo script ignora il secondo UPS, poiché non sono connessi agli eventi, e procede normalmente con lo spegnimento.
Per avere il doshutdown eventi in qualche modo collegati, le due istanze di apcupsd necessitano di un file di configurazione appositamente personalizzato. La differenza risiederà nella directory da cui devono essere eseguiti gli script degli eventi.
Proprietà principali dei primi piani, in /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
E per gli ups1, in /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
Ogni scriptdir dovrebbe ottenere una copia degli script predefiniti.
Vogliamo personalizzare il doshutdown script, che non spegnerà direttamente la macchina, ma deve controllare se l'altro UPS è ancora acceso o in modalità di spegnimento.
In cima al doshutdown script, potremmo aggiungere qualcosa come
per ups0
if [ ! -f /tmp/ups1.is.down ]
then
touch /tmp/ups0.is.down
exit 99
fi
per ups1
if [ ! -f /tmp/ups0.is.down ]
then
touch /tmp/ups1.is.down
exit 99
fi
lo stato 99 ha un significato speciale, che indica apccontrol per interrompere l'azione in corso. Le cinque righe controllano se l'altro file UPS-down è stato creato; se no , il file down viene creato per gli up in down ed esce. Se sì , il che significa che l'altro UPS è inattivo, anche questo si sta arrestando, quindi lo script dovrebbe continuare e spegnere la macchina.
I file /tmp/usp[01].is.down
indicare se l'ups[01] è attualmente down.
Importante:lo script di avvio init.d di apcupsd dovrebbe rimuovere questi file, se sono stati creati in una sessione precedente:
rm -f /tmp/usp[01].is.down
Infine, le directory create sopra, /etc/apcupsd/ups[01] dovrebbero avere accesso a apcupsd utente (o a qualsiasi utente rilevante che esegue le istanze).
chown -R apcupsd /etc/apcupsd/ups[01]
Si prega di dare un'occhiata alla documentazione dettagliata.
modifica corretto il /tmp/ups[01].is.down
nomi, il .is
mancava.
Guarda NUT. Lo gestisce bene. Definire il numero di alimentatori da ciascun UPS e il numero di alimentatori richiesti. L'arresto non verrà attivato finché vi sono sufficienti alimentatori non sull'UPS.