nut, APC Back UPS 600 (dumb) és a Debian

 ( tovis | 2011. július 15., péntek - 16:11 )

Készül egy kis házi szerver. Van hozzá egy igen antik APC Back UPS 600. A nut -hoz csatolt dokumentációnak megfelelően elkészítettem a hozzávaló kábelt "Gray APC 940-0095A" (van benne egy tranzisztor, egy univ dióda és 4 ellenállás - a 9 pol D-SUB csatlakozó házába belefér).
Feltelepítettem a nut csomagot, bekonfiguráltam a különféle readme alapján. Az UPS -t APC 600 -nak "kereszteltem", és ha beütöm az "$upsc APC600" akkor helyesen jelenik meg a kábel típusa és az aktuális állapot - hálózaton vagy akkumulátoron.
Furcsa hogy a semmi nem látszik az akku állapotáról (a tranzisztoros konglomerátum) pont ezt a relés kimenetet illeszti a soros port handshake lábaira - a relé APC doksi szerint lehúzza a lábat a földre, egy mikrókapcsolóval könnyedén szimulálható. Mégis valamit rosszul kötöttem?
A akkura kapcsolás illetve vissza jól látszik a syslog -ban, de az alacsony akku nem :(
Kipróbáltam az "upsdrvctl -D shutdown" parancsot - lelövi a az UPS -t , viszont nem shutdownolja a gépet? Kipróbáltam az "upsmon -c fsd" parancsot - ez shutdownolja a gépet, de nem kapcsolja le az ups -t.
A dokumentációban van egy shutdown.txt fájl, ott leírja hogy is kellene ennek működnie - az én esetmben ez amaster, nincsenek slave -k, "standalone". Ezek szerint, az "upsmon" (kettő is fut belőle, egy mint "nut" felhasználó, egy mint "root" felhasználó):
- generál gey NOTIFY_SHUTDOWN eseményt
- várakozik "FINEDELAY" lejártára - alapból 5 sec
- létrehozza a "POWERDOWNFLAG" fájlt - ami az /etc/killpower
- meghívja a "SHUTDOWNCMD"
Ekkor az "init átveszi a hatalmat, legyilkolja a futó folyamatokat, sync -el és lebontja a fájlrendszereket, és újra építi őket csak olvashatóan".
Eztán az "init" futtatja a shutdown szkriptet. Ez ellenörzi a "POWERDOWNFLAG" -et (/etc/killpower) és szól az UPS drivernek ami lekapcsolja a terhelést. A rendszer leáll.
Hol van ez a "shutdownscript" és hogy adagolom be ezt az init -nek? Erről nem sok szó esik, mintha nekem kellene megírni és beilleszteni? De hova?

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Picit okosabb lettem. Az "#upsmon -c fsd" parancsra az /etc/killpower fájl létrejön. A shutdown.txt fájlban van egy kis script:

if ( test -f /etc/killpower )
then 
  echo "killing the power, bye!"
  /usr/local/ups/bin/upsdrvctl shutdown
  sleep 120
  # uh oh ... the UPS poweroff failed!
  # stb.
fi

De hol hívódna meg ez a cucc? Hol kéne erre hivatkozni?

* Én egy indián vagyok. Minden indián hazudik.

Még egy kicsit beljebb. A start/stop scriptbe beágyazták az UPS kikapcsolást

case
  start)
  stop)
  ...
  poweroff)

Szép, de ki adja meg a "poweroff" argumentumot?
Az biztos, hogy momentán ez nem megy :(

szerk:
Az /etc/init.d/nut "poweroff" argumentummal van meghívva ha "upsmon - fsd" -vel hívom meg. Valami feltétel nem stimmel.

szerk:
No igen. Csak akkor kapcsolja ki ha akkun van - "On battery" :)
Viszont, mintha azután kezdene sync -elni, hogy kikapcsolta az UPS -t?
Ez nem tűnik túl jónak. További tesztelést igényel.
Ráadásul, nekem még valahogy rá kell vennem hogy amint kimarad az áram, mondjuk 30 sec késleltetés után kapcsolja a rendszert - túl buta ez a szerkezet, nem lehet neki késleltetést beállítani ahhoz, hogy újra tölthesse az akkut. Így néhány 10 perc áramkimaradás után nem tud annyi energiát adni, hogy a shutdown lemenjen. (ez a késleltetés hiányzik nekem nagyon, az áramkimaradások után sokszor jönnek löketek, vagy egyszerűen ingadozik a feszültség - elég sok kütyü ment így tönkre)

* Én egy indián vagyok. Minden indián hazudik.