SuSE Linux: Od verze 7.2
Od verze 0.44.3 balíku smartups (SuSE Linux 7.2) je možné nastavit "forced shutdown" tak, že je celý slave systém o výpadku proudu informován a poté bezpečně vypnut. V kombinaci s časovačem, který se spustí v okamžiku výpadku proudu, tak můžete nyní dosáhnout požadovaného výsledku.
Následující postup se týká pouze hlavního počítače připojeného přímo k UPS. Na slave systém nemá následující postup žádný vliv.
# NOTIFYCMD /usr/local/ups/bin/notifyme # NOTIFYFLAG ONLINE SYSLOG # NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
a změňte je takto:
NOTIFYCMD /usr/sbin/upssched NOTIFYFLAG ONLINE SYSLOG+EXEC NOTIFYFLAG ONBATT SYSLOG+WALL+EXEC
Tím docílíte toho, že v případě výpadku proudu (ONBATT) a následného obnovení dodávky (ONLINE) bude vykonán příkaz /usr/sbin/upssched.
Příkazem /usr/sbin/upssched spusťte časovač, který po nastaveném čase spustí uvedený příkaz (popř. skript) a poté jej také podle potřeby přeruší. Tento čas nastavíte v konfiguračním souboru /etc/ups/upssched.conf pomocí textového editoru. Zde je názorný příklad, který můžete pomocí "cut and paste" překopírovat do svého souboru:
# # /etc/ups/upssched.conf # Konfigurace pro /usr/sbin/upssched # CMDSCRIPT /usr/local/sbin/go-down PIPEFN /var/run/upssched.pipe AT ONBATT * START-TIMER onbattwarn 60 AT ONLINE * CANCEL-TIMER onbattwarn
Tato konfigurace zajistí, že se po startu /usr/sbin/upssched v případě výpadku dodávky elektrického proudu (ONBATT) na 60 sekund nastartuje časovač a po uplynutí této lhůty se spustí skript uvedený v řádce CMDSCRIPT. Pokud ještě před uplynutím 60 sekund dojde k obnovení dodávky elektrického proudu (ONLINE), bude /usr/sbin/upssched ukončen.
Otevřte v textovém editoru soubor /usr/local/sbin/go-down a připojte následující řádky:
#!/bin/bash # # /usr/local/sbin/go-down # Skript pro vypnutí počítače # upsmon -c fsd
příkazem:
chmod 700 /usr/local/sbin/go-down
změňte přístupová práva k souboru.
Restartujte UPS příkazem:
rcups restart
Po restartu odpojte UPS ze sítě a vyčkejte, dokud se na konzoli neobjeví hlášení:
Broadcast Message from root@D222 (somewhere) at 15:18 ... UPS localhost on battery
Zapojte UPS zpět do sítě a zadejte příkaz:
tail -n20 /var/log/messages
Tento příkaz otestuje, zda se časovač korektně spustil a vypnul. Hlášení, které obdržíte, by mělo vypadat asi takto:
Jul 10 15:18:34 D222 upsmon[3437]: UPS localhost on battery Jul 10 15:18:34 D222 upssched[3445]: Timer daemon running Jul 10 15:18:34 D222 upssched[3445]: New timer: onbattwarn (60 seconds) Jul 10 15:19:05 D222 upsmon[3437]: UPS localhost on line power Jul 10 15:19:05 D222 upssched[3445]: Cancelling timer: onbattwarn Jul 10 15:19:05 D222 upssched[3445]: Timer queue empty, exiting
Pokud byl test úspěšný, odpojte UPS opět ze sítě. Počítač by se měl po jedné minutě sám vypnout.
Pokud chcete vypnout také UPS, musí dostat příkaz k vypnutí během shutdownu. Toho docílíte modifikací skriptu /etc/init.d/halt.local.
#!/bin/bash # # /usr/local/sbin/ups-down # Skript pro vypnutí UPS po výpadku proudu. # if (test -f /etc/killpower) then echo "Killing the power, bye!" /usr/lib/ups/driver/apcsmart -k /dev/ttyS0 fi
a pak proveďte příkaz:
chmod 700 /usr/local/sbin/ups-down
který změní přístupová práva k souboru.
Ujistěte se, že je tento skript vykonán v /etc/init.d/halt.local pomocí příkazu:
echo "/usr/local/sbin/ups-down" >>/etc/init.d/halt.local
Script hledá během vypnutí počítače soubor /etc/killpower. Tento soubor je programy ovládajícími UPS vytvářen vždy, když dá časovač signál k shutdownu. Pokud soubor /etc/killpower existuje, vykoná se příkaz usr/lib/ups/driver/apcsmart -k /dev/ttyS0, který slouží k tomu, aby se UPS po určité době vypla. Tento čas je pro každou UPS pevně definován.
Po obnovení dodávky proudu se UPS sama spustí a s ní automaticky také počítač. U některých ATX zařízení je nutné k dosažení stejného účinku provést nejprve nastavení v BIOSu.
SDB-tsieden_smartups-shutdown
)