Portál AbcLinuxu, 25. dubna 2024 19:01


Dotaz: Jak shodit linux pres seriak?

16.7.2014 22:08 petrfm
Jak shodit linux pres seriak?
Přečteno: 597×
Odpovědět | Admin

Ahoj, da se nejak jednoduse "shodit" system pres seriovy port? Aniz bych musel vytvaret nejakeho daemona, ktery bude naslouchat, pobezi pod rootem a potom, kdyz prijde odpovidajici retez, tak zada neco jako "sudo halt" / "sudo shutdown -h now"?

Chtel bych si udelat UPSku k raspberry a libilo by se mi, kdyby to fungovalo jako ten apc deamon pro UPSky od APC - apcupsd... Mam ho na serveru - proste vypnou elektriku, tak mi to shodi system a vypne PC - vyhoda je, ze to odmountuje vsechny disky a nedojde k poskozeni FS, nez to cele zdechne.

Existuje uz nejake hotove resni? Asi by se to dalo resit napojenim primo na terminal a zadanim tech prikazu do terminalu - ale to by vyzadovalo nastavit jmeno a heslo do te UPSky (bude tam nejaky jednocip) a to je neprakticke. Radeji bych, aby UPSka zasilala informace o napajeni, prip. stavu baterie a kdyz vypadne napajeni, zaslala neco jako POWER LOST a o zbytek se postaral linux.

Poradite, nasmerujete?

P.


Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

16.7.2014 22:50 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Najít a upravit UPS kového daemona. Protože i to od aPC je daemon, který naslochá a interpretuje.
16.7.2014 22:56 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Odpovědět | | Sbalit | Link | Blokovat | Admin
A co tak použít apcupsd, když ho znáš (nebo nut)?
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
16.7.2014 23:00 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nevím jak se to jmenoval, ale v době vydání OpenSuse 10.3, jsem používal nějakého daemona, který monitoroval změnu na seriovém portu, bylo to docela easy na konfiguraci, řekl si který, pak jsi „něco“ spustil odpojil 230V připojil 230V, ono to napsalo „aha“ a pak to čekalo na tu změnu na seriáku, a jak k ní došlo, tak začal běžet nastavený timeout a pak se to vyplo.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
16.7.2014 23:09 GeorgeWH | skóre: 42
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Aniz bych musel vytvaret nejakeho daemona, ktery bude naslouchat, pobezi pod rootem a potom, kdyz prijde odpovidajici retez, tak zada neco jako "sudo halt" / "sudo shutdown -h now"?

vs.

kdyby to fungovalo jako ten apc deamon pro UPSky od APC - apcupsd

takze co vlastne chces?

Existuje uz nejake hotove resni?

ano - Network UPS Tools
Jendа avatar 17.7.2014 00:47 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Aniz bych musel vytvaret nejakeho daemona, ktery bude naslouchat, pobezi pod rootem a potom, kdyz prijde odpovidajici retez, tak zada neco jako "sudo halt" / "sudo shutdown -h now"?
Ty jo než zadáš tento dotaz a než nastavíš nějaký existující SW, který ti poradí, tak už to máš hotové, ne? :)
ups="/dev/ttyS0"

stty -F "$ups" cs8 cread clocal -cstopb -echo -ignpar

while sleep 1; do
  while read line; do
    if echo "$line" | grep -qE "^AHOJ"; then
      halt
    fi
    echo "$line"
  done < "$ups"
done

Já to s tou denacifikací Slovenska myslel vážně.
17.7.2014 01:03 petrfm
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?

Jendo SUPER!!! Sice tomu vubec nerozumim, ale vim, ze to je presne, co jsem hledal... Ano, defakto mi staci bash script, ktery jednou za cas sahne na upsku a zjisti, jestli jede z baterky, nebo ze site. Krasne na tom je, ze si to muze kazdy nascriptovat jak chce a pokud to bezi po seriaku, tak to bude mit podporu NA KAZDEM HW.

Koukam na to znova a uz mi svita... (v bashi jsem toho jeste moc nepsal). Takze - to cte kazdou sekundu ze seriaku a kdyz najde AHOJ, posle to halt.. OK... Jak to udelat, at se to spusti samo po startu? dat do rc.local? A kdyz to dam do rc.local, bude to mit prava roota, takze to dokaze i shodit system, je to tak?

Jendа avatar 17.7.2014 01:06 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Já mám v rc.local
/usr/bin/screen -S foo -d -m /root/foo.sh &
takže se k tomu dá připojit a koukat na to (můj skript ovládá modem, což je trochu složitější, než jenom číst).
17.7.2014 01:34 petrfm
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
takze ti v pripade vypadu linky treba prepne na zalozni GSM pripojeni? Hmm, s tim screenem je to dobry napad. Ale pro upsku by stacilo to klasicky logovat do souboru - to pouzivam ve svym jediny scriptu, ktery mi po zapnuti serveru pripojuje sifrovane disky a odemyka je vzdalene ulozenym heslem :-) Uklada to do logu, v kolik hodin se co nepovedlo :-)))
Jendа avatar 17.7.2014 03:20 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Ne, tohle je zařízení v terénu, které má jenom to GSM.
17.7.2014 01:31 petrfm
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?

Ted jeste jedna vec... protoze se mi docela libi ten napad, pripojit to misto na uart na IIC, ktera je defakto paralelni a muze na ni viset vice zarizeni - cili to neomezi vyuziti toho RPi...

Mas s RPi zkusenosti? ja na nem zatim nic HW s vyuzitim GPIO nestavel, takze nevim, jak to tam je s tema ruznyma knihovnama, co pro to jsou? Neda se nahodou v raspbianu pristupovat na to IIC primo, jako na blokove zarizeni? Pripadne vytvorit jen nejaky "mustek", ktery by mi to I2C zpristupnil jako soubor, aby sel jednoduse pouzivat v bash scriptech?

Posledni vec - ma ten bash script nejakou zasadni nevyhodu oproti treba tomu daemonu napr. v C?

Jendа avatar 17.7.2014 03:23 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Ted jeste jedna vec... protoze se mi docela libi ten napad, pripojit to misto na uart na IIC, ktera je defakto paralelni a muze na ni viset vice zarizeni - cili to neomezi vyuziti toho RPi...
No já hlavně nevím, jak tu UPS chceš postavit -- já bych asi připojil na I2C nějaký levný ADC pro měření baterky a nabíjení ovládal pomocí GPIO pinu.
Mas s RPi zkusenosti?
Trošku. GPIO se dá ovládat v lecčems, např. v Pythonu RPi.GPIO nebo ve shellu utilitou gpio. Osobně bych na RPi nepsal dlouhoběžící démony v shellu, přecijen je shell asi nejpomalejší jazyk, který si můžeš vybrat.
17.7.2014 10:54 petrfm
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?

Hraju si ted s pythonem, tak je to mozna vyzva ho vyzkouset na tohle :-) Python je podporovany asi v kazdem linuxu, ze ? Da se program v pythonu spustit taky jako daemon a nebude moc zatezovat system?

Jinak co se tyka HW, chci to postavit s jednocipem, aby se ta UPSka chovala zcela autonomne a mimo to, aby posilala informace do RPi. Rizeni te UPSky bude zajistovat ten jednocip, potrebuju jen, aby to komunikovalo s NECIM v tom RPi, cili bud shell, nebo nejaky daemon, ktereho zvladnu naprogramovat :-)

Jendа avatar 17.7.2014 16:40 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Python je podporovany asi v kazdem linuxu, ze ?
Skoro. Dnes jsou lidé, co nemají Python 3, časem zase budou lidé, co nebudou mít Python 2.
Da se program v pythonu spustit taky jako daemon a nebude moc zatezovat system?
Já to spouštím v tom screenu. Na zátěž jaksi nemá vliv, jestli běží interaktivně, nebo jako démon.
17.7.2014 00:58 petrfm
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Odpovědět | | Sbalit | Link | Blokovat | Admin

jsem linuxova lama, co amatersky provozuje podle stohu tutorialu asi 4 servery, tak semnou prosim mejte strpeni :-) nasel jsem, ze nekdo uz to primo pro RPi dela, resi to pomoci daemona, ktery komunikuje s tou UPSkou pres IIC sbernici - ale ja si to chci udelat podle sebe - hlavne ten HW, takze bych se jen inspiroval tim, jak resi tu systemovou cast.

http://www.piups.net/support/

Spousti to nejake BASH SCRIPTY??? a protoze jsem lama, chapu to tak, ze bezi daemon, ktery sosa po lince stav te upsky a kdyz prijde nejaka udalost, tak se spusti (ten daemon vyhlasi v systemu nejaky stav???) nejaky script, tzn. ze si treba do rc.0 atd napisu, ze kdyz prijde udalost LOST POWER, ma se udelat shutdown -h now, je to tak?

Asi si to budu muset naprogramovat a asi to nebude az tak slozite, jak se mi ted prave zda, jen bych poptreboval popostrcit, co si mam nastudovat? Chtel bych to resit co nejjednodusejc a pritom tak, aby to bylo spolehlive a nesvazovalo to uzivateli ruce v tom, aby si mohl sam nastavit, co se ma kdy se systemem stat - v tom se mi libi ten daemon, co asi prepina runlevel? V tom nejsem tak kovanej, takze nevim, jestli to takhle jednoduse jde?

P.

17.7.2014 11:10 KOLEGA | skóre: 17 | blog: odpocinuti_vecne
Rozbalit Rozbalit vše Re: Jak shodit linux pres seriak?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pravděpodobně bude vhodné založit nový dotaz ;)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.