Proces beziaci na pozadi

Všetko ohľadom Linuxu...
mava77
Novice
Novice
Príspevky: 4
Registrovaný: 04 dec 2008, 14:37

Proces beziaci na pozadi

Príspevok od používateľa mava77 »

Asi pre vacsinu z vas hlupa otazka, ale spytam sa i tak.

AKO SPUSTIM NEJAKY PROCES V BASHi NA POZADI ??? :?
Vopred vdaka za kazdu odpoved !!!
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

pomocou &
teda napr less &

+presuvam do fora linux
mava77
Novice
Novice
Príspevky: 4
Registrovaný: 04 dec 2008, 14:37

Príspevok od používateľa mava77 »

Hmmm - dakujem :)

A ako poslat na pozadie vykonavanie viacerych prikazov ?
Naprikald ako na pozadi vykonavat toto :

ps a | wc -l
sleep 120
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

no bud si urobis nejaky skript a budes ho spustat alebo ovela jednoduchsie

Kód: Vybrať všetko

ps a | wc -l && sleep 120 &
mava77
Novice
Novice
Príspevky: 4
Registrovaný: 04 dec 2008, 14:37

Príspevok od používateľa mava77 »

OK - verzia "ps a | wc -l && sleep 120 &" mi hlasi chyby, takze radsej by som to riesil cez ten skript.

Ako teda poslem "na pozadie" vykonavanie celeho skriptu prosim ???
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Rovnako, ako ten program. Teda niečo ako:

Kód: Vybrať všetko

skript.sh &> /dev/null &
pato83
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3916
Registrovaný: 21 nov 2005, 22:12

Príspevok od používateľa pato83 »

Mohol by niekto vysvetlit, naco je dobre toto zariadenie? Myslim /dev/null . Na odfiltrovanie neziaducich vystupov, ale na to sa da predsa pouzit trebars aj grep, aspon na tie jednoduchsie veci urcite, nic zlozite som neriesil zatial. Aj som to pozeral na wiki a pod, ale stale tomu dako nechapem. :) A keby bol aj daky priklad, by som sa tomu este viac potesil. Diki

p.s.: Chapem to spravne, ze sa tam vsetko straca, co je poslane na toto zariadenie ? Lenze potom naco nieco spustat, ked vystupy nechceme?
SAmo
Medium Expert
Medium Expert
Príspevky: 121
Registrovaný: 15 dec 2006, 9:19

Príspevok od používateľa SAmo »

pato83 napísal:Mohol by niekto vysvetlit, naco je dobre toto zariadenie? Myslim /dev/null . Na odfiltrovanie neziaducich vystupov, ale na to sa da predsa pouzit trebars aj grep, aspon na tie jednoduchsie veci urcite, nic zlozite som neriesil zatial. Aj som to pozeral na wiki a pod, ale stale tomu dako nechapem. :) A keby bol aj daky priklad, by som sa tomu este viac potesil. Diki

p.s.: Chapem to spravne, ze sa tam vsetko straca, co je poslane na toto zariadenie ? Lenze potom naco nieco spustat, ked vystupy nechceme?
/dev/null je nieco ako cierna diera, co tam vleze to uz nevyleze ;) a vystup moze fungovat na vynulovanie obsahu suboru, napriklad. alebo tam mozes presmerovat error vystup z findu lebo na to ti grep tusim nebude fungovat
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

pato83 napísal:Lenze potom naco nieco spustat, ked vystupy nechceme?
Nie pri každom programe je dôležité to, čo sa vypisuje na obrazovke. Napr. pri programe na komprimovanie súborov je dôležité to, aby to tie súbory komprimovalo. Ak robíš nejaký skript, ktorý napr. niečo zálohuje a tá záloha sa aj komprimuje, môžeš chcieť, aby všetko podstatné písal ten skript a nie tie programy, ktoré ten skript spúšťa (spustíš bzip2, a pri skončení skontroluješ, či nastala chyba; ak áno, tak vypíšeš nejakú hlášku).

Pri procesoch, ktoré spúšťaš na pozadí budeš v 99 percentách prípadov chcieť, aby nič do terminálu nepísali. Ide o to, že ak program bežiaci v pozadí niečo vypíše, tak sa ten proces zastaví až kým si ten text niekto neprečíta (a keďže ti na tej konzole, z ktorej si to spúšťal môže bežať niečo iné, tak kvôli nejakej zbytočnej hláške ti ten skript prestane pracovať). To je dôvod, prečo sa výstup takých procesov zvyčajne do toho /dev/null posiela. ;)
pato83
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3916
Registrovaný: 21 nov 2005, 22:12

Príspevok od používateľa pato83 »

Dakujem za vysvetlenie, tedka to uz chapem. Ono som si neuvedomoval, nejak nedoplo, ze vystup nie je vystup. Jedna vec je informacie o priebehu a druha produkt tej aplikacie. :)

//autoeditácia príspevku ( 17 Dec 2008, 21:01 )
Este by ma zaujimalo, ako by to vymazanie obsahu suboru vyzeralo, myslim prikaz. Diki
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

Príspevok od používateľa chrono »

Napr.

Kód: Vybrať všetko

cat /dev/null > subor
ale rýchlejšie je napr.

Kód: Vybrať všetko

> subor
(nevytvára sa tam nový proces)
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

Príspevok od používateľa turtlak69 »

tiez sa da vyuzit na odfiltrovanie vystopov ako bolo spomenute alebo aj ked je potrebne niekde nieco ukladat (nejake logy) a jednoducho ich nechces ukladat, tak nastavis cestu /dev/null a aplikacia ti nebude pindat, ze nie je zvolena cesta pre logy a zaroven ti logy nebudu zaberat miesto.
priklad: mas nejaku oracle 10g databazku, ktora si loguje co robi a vsetko zaznamenava do logov (stovky GB dat, ktore sa zalohuju na pasky) a chces, aby sa teraz beh nezaznamenaval (obnova po crashnuti DB by tak bola nemozna). no z nejakeho dovodu to chces tak, tak si napriklad presmerujes vystup takto:

Kód: Vybrať všetko

SQL>alter system set log_archive_destination='/dev/null' scope=memory;
a za behu mas prekonfigurovanu cestu pre logy. samozrejme, ze sa to da spravit aj inak. toto bol len priklad. tato "cierna diera" tiez moze sluzit aj na mazanie dat. napriklad:

Kód: Vybrať všetko

mv subor.dat /dev/null
toto je uplne to iste ako rm subor.dat
ja osobne tuto ciernu dieru vyuzivam hlavne na resetovanie suborov (ked chcem vymazat nejaky subor, ale nechcem ho zmazat).

Kód: Vybrať všetko

cp /dev/null /cesta/k/suboru/subor.txt
pato83
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3916
Registrovaný: 21 nov 2005, 22:12

Príspevok od používateľa pato83 »

Ok, uz ja tomu rozumiem, takze vsetkym dakujem.

turtlak69: Zabudol si na to podstatne:

Kód: Vybrať všetko

mv turtlak69 /dev/null  # A si doma  
:P
Napísať odpoveď