Nikdy jsem nedělal programy a vlastně nikdy jsem ani pořádně nedělal s Linuxem. Nyní však mám doma router Asus WL-500gP, na kterém běží Linix (nebo Unix, teď si nejsem jistý). Mám pro něj kompiler, dokonce jsem si už napsal pár jednoduch prográmů.
Chtěl bych totiž z tohoto routeru udělat centrum mé vlastní domácí meteorologické stanice. Momentálně jako centrum slouží stolní PC - sbírá údaje, ukládá je do databáze, ze které si pak generuji statistiky. Nyní bych chtěl sběr dat přesunout na router, který běží téměř pořád.
Moje představa je, že by na routeru běžela na pozadí má C aplikace, která by sbírala data. Na webserveru, který mi běží na routeru, bych pak měl PHP script, který by data z databáze četl a v nějaké podobě ukazoval.
Mám však problém s tím, jak mou aplikaci nechat běžet na pozadí. Nevím, jak zajistit to, aby když ji přes telnet spustím, tak se "minimalizovala" a běžela na pozadí, a já mohl s telnetem dál pracovat. Jak na to?
Předem děkuji za odpověď.
Fórum › C / C++
Linux & aplikace na pozadí
aaa len tak btw ak nebudes mat ten program v /usr/bin/ alebo inej nadefinovanej ceste z kade ma brat programy tak treba bud ku menu programu uviest jeho absolutnu cestu, alebo ak si v zlozke s programom tak sa to spusti cez ./tvoj_program & (cize treba pridat ./ )
inac pekne vyuzitie routra :)
To asdf : Na to se nikdo neptal.
Naopak asi přijde otázka, co s tím po odpojení :)
To asdf : Tak během té doby, co jsem router dával dohromady (instaloval webový server, řešil připojení externího disku, jehos sdílení, atd...) jsem na tady tyto věci přišel, respketive jsi je uvědomil (myslím tím tu cestu a ./) Každopádně díky za pochvalu využití routeru ;) Pokud vyjde meteostanice, tak s ním mám další velké plány.
To crAzY^ : Díky za upozornění na takový malý detail, který by mi později určitě působil problémy.
V poslední době mi toho do života celkem hodně naskákalo, a k tomuto "projektu" jsem se dostal až po měsíci. Bohužel mezitím sousedé, kteří bydlí nad námi, dělali koupelnu, a omylem kusem suti smetli mou malou meteostanici. Ta nepřežila. Takže ji momentálně obnovuji a vylepšuji. Zatím jsem se dostal pouze k anemometru.
K věci; rád bych se pochlubil mým výtvorem a obdržel na něj nějakou reakci (i když nevím jestli na to vůbec nějaká reakce obdržet jde). Výsledek si můžete prohlédnout na http://studiokamarad.ic.cz/anemometr/
Celý projekt (tedy bez samotného anemometru) byl spáchchán za víkend. Zatím není hotový, mám s ním další plány.
Nyní je veškeré měření realizováno následovně: přímo v anemometru je fotobrána, která snímá otáčky. Pomocí časovače generuji stejně dlouhé pulzy. Tyto "data" mám svedena na mikroprocesor PIC, který tvoří rozhraní mezi routerem a anemometrem. Data v routeru sbírá C program, který je následně ukládá do databáze a pravidelně synchronizuje se serverem. Webové rozhraní je klasické PHP + na straně klienta jQuery. Tento kód je zatím hodně "prasácký" - nedostalo se mu ještě estetické péče.
Největším problém v současnosti je nezkalibrovanost anemometru. Na stánkách je sice psáno "m/s", ale skutečnou jednotkou je 1/36 otáčky za sekundu. Bohužel nemám k dispozici žádný anemometr, který by mi pomohl ten můj zkaliborvat.
Dalším problémem je samotné umístění anemometru - bohužel s tím v bytě jen tak něco neudělám.
Dále mám v plánu meteostanici rozšířit o teploměr, vlhkoměr, tlakoměr a měřič sluneční intezity. Směr větru nemá díky umístění cenu měřit. Celé měření by také mělo doznat změny. Mikroprocesorovou část bych rád obohatil o vlastní zdroj napětí a EEPROM, do které by se data ukládala v době, kdy by router nebyl dostupný; tzn. měl bych data za 24/7, nehledě na to jestli router běží nebo ne. Plus bych chtěl rozšířit funkcionalitu stránek (např. odstraňovat skoková data) a dodat jejich kódu "estetičnot".
Sice pozdě, ale stejně to napíšu. Spouštění aplikace s & na konci není pro tohle úplně vhodné. V linuxu (ale i v dalších unixech) se takový program píše jako tzv. daemon http://en.wikipedia.org/wiki/Daemon_(computer_software). Pro domácí použití je to sice jedno, ale takhle se to běžně nedělá. Další možnost, pokud ten program nemusí běžet pořád, je nastavit si událost do cronu a pouštět to v pravidelném intervalu.
Jinak se mi ten celý systém dost líbí. Přijde mi to určitě zajímavější, než si koupit něco hotového. Kdybych měl víc času a nebyl jsem tak líný, tak si něco podobného ukutím taky :smile1:
To petr : To petr : Nakonec celé spouštění řeším přes cron - každých 5 minut spuštím skript, který testuje, zda-li moje aplikace beží. Pokud ne, tak ji spustí.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Aplikace na pozadí — založil davidus
Aplikace na pozadí — založil honzik.sikula
SuSE Linux & driver pro ATI Radeon 9550 — založil ProgDan
Úprava aplikace pro Linux — založil marpit
Distribuce aplikace pro Linux — založil PiranhaGreg
Moderátoři diskuze