Portál AbcLinuxu, 10. května 2025 04:17

Dotaz: program na pozadi

21.11.2003 10:29 Milos
program na pozadi
Přečteno: 251×
Odpovědět | Admin
Mam dotaz, vytvoril jsem jednoduchy program, ktery zapisuje do souboru, jestlize prijde neco na seriovy port (program bezi v nekonecne smycce, je vytvoren ve freepascalu). Pokud bezi na popredi spusten z konzole, tak se chova dobre. Jestlize ho pustim na pozadi (pomoci nazev&), pak nic neprovadi. Da se s tim neco delat nebo musi byt takovy program napsan urcitym zpusobem?

S tim souvisi mozna i obecnejsi dotaz, jak program(proces) normalne zapisujici napr. na obrazovku, ale spusteny na pozadi, bude fungovat resp. pojede a znaky na obrazovku jdou do cerne diry (/dev/null apod.)? Lze program spusteny na pozadi dostat zpet na popredi? Je program spusteny na pozadi roven tzv.demonu?

Prosel jsem nekolik knih o Linuxu a v kazde je pouze zminka, ze takto se to spusti na pozadi bez dalsiho podrobneho vysvetleni.

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

Odpovědi

21.11.2003 10:39 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše program na pozadi
Odpovědět | | Sbalit | Link | Blokovat | Admin
K tomu programu v pascalu: to je divné, normální programy nepotřebují žádné speciality ke spouštění na pozadí. Ke zbytku: na popředí ho dostaneš fg (mno, jestli jsi prošel několik knih o Linuxu, tak to tam určitě bylo ;-) Program na pozadí vypisuje na terminál spokojeně dál (dokud ten terminál existuje -- ls & vypíše totéž to ls). Démon to není, ten udělá pár věcí navíc, např. právě zavře standardní vstup a výstup.
21.11.2003 11:01 Peter Golis | skóre: 64 | blog: Bežné záležitosti | Bratislava
Rozbalit Rozbalit vše program na pozadi
Odpovědět | | Sbalit | Link | Blokovat | Admin
no, pokial program potrebuje citat/zapisovat na terminal (obrazovku) a nemoze, lebo ju nema k dispozicii, tak je obvykle zastaveny signalom SIGTTY (TTY/TeleTYpe/dalekopis/terminal). zistit sa ot da povecsine prikazom jobs z terminalu kde bol spusteny na pozadi. Program sa da privolat spet prikazom fg, popripade fg 1 (kde 1 je poradove cislo procesu ...), vypise si svoje, pokomunikuje a ma da sa hodit zas na pozadie CTRL+Z. Holt, akurat mi nie je jasne, preco nebol spusteny (ak nieco vypisuje, ale necita z terminalu) prikazom
nohup ./program > nejaky.log 2>&1 &
man bash (popripade iny shell ktory pouzivas)
21.11.2003 11:10 Milan Dobeš | skóre: 22
Rozbalit Rozbalit vše program na pozadi
Odpovědět | | Sbalit | Link | Blokovat | Admin
Důvod mě nenapadá ale skuste to spustit pod screenem "screen program". Od screenu se odpojíte pomocí ctrl+a,d a zpět se připojíte pomocí "screen -r".
MilanD

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.