The UNIX and Linux Forums  


Go Back   A UNIX és Linux Forums > Operációs rendszerek > HP-UX
.
google unix.com



HP-UX HP-UX (Hewlett Packard UNIX) a Hewlett-Packard saját végrehajtását a Unix operációs rendszer alapján Rendszer V.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
Add a kimenetet egy lekérdezést egy változót kell használni a másik query hazno Shell programozás és Scripting 0 03-24-2009 08:52 PM
Mac OS X: Miért a Mac nem alszom vagy tartózkodási alvó üzemmódban iBot OS X Support RSS 0 03-19-2009 10:50 PM
konvertáló localtime a unixtime AshishK A UNIX a fejlett és szakértői Felhasználók 2 10-30-2007 10:22 AM
Perl + localtime () Optimus_P Shell programozás és Scripting 3 07-09-2003 06:32 PM
alszik Anna A UNIX a dummies Kérdések és válaszok 5 07-11-2001 12:52 AM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Értékelés: Thread Rating: 1 votes, 4.00 average. Megjelenítési módok
  #1 (permalink)  
Old 06-29-2009
nsvora nsvora is offline
Regisztrált felhasználó
  
 

Join Date: Jun 2009
Hozzászólások: 2
sleep & localtime query

Szia,
Én munka HPUX alkalmazásáról és én egy kérdés tekintetében alvás és localtime rendszer hívás HPUX.
Itt a kód, hogy van:

const uint32_t WAKE_INTERVAL_SEC (30 * 60);
while (true) (

/ / Find out hány óra van
time (& CURRENTTIME);

/ / Thread összehangolni az ébresztés óra 30 perc, azaz ha jelenleg 9:20 ébresztés után 10 perc,
/ / Ha ez jelenleg 9:05, ébresztő után 25 perc.
Számítsuk hátralévő másodpercek számát e fél órán keresztül.
sleepTime \u003d WAKE_INTERVAL_SEC - (CURRENTTIME WAKE_INTERVAL_SEC%);
while (1) (

sleep (sleepTime);

/ / Do rendszeres munka
tptr \u003d localtime (& CURRENTTIME);

if (12 \u003d\u003d tptr-> tm_hour & & tptr-> tm_min <WAKE_INTERVAL_MIN)
(
/ / Noon elvégzendő munka
)
)

Várható Viselkedés:
Mint a fent említett kódot, azt várjuk, hogy fél óránként, valami munkát kell végezni, és ha abban az időben történik, hogy 12 és 12:30 akkor mi is van dél munkát.

Tényleges viselkedése:
Az idő nagy részében ez a várt módon működik. De néhány alkalommal, az alvás úgy tűnik, hogy kilépés előtt néhány másodperccel 12:30, és így a logika nem működik, és nem a déli munkát. Ideális esetben én azt várná, hogy a déli munka nem feltétel, mert az üzenet 12:30-kor felébredtem, és ezért nem tud satisify délben munka feltételt. (A Trace syslog jelzi, hogy a rendszeres munka már megkezdődött 12:30-kor, de a fakitermelés is volna egy kis időt, és gyanítom, aludni volna felébredt korai)

Kérdés:
- Tud aludni felébred, mielőtt a menetrend időt (kivéve SIGALRM)? Van még olyan körülmények között, ahol aludni lehet ébredni tervezett időpont előtt?
- Tud localtime összehasonlításhoz használt vissza rossz időben?
- Lehetséges, hogy van néhány alkalommal végzett kiigazítások belső (lehet, a belső óra sodródik stb) ami álmában felébred a második a vártnál előbb vagy helyi idő során valamilyen okból kiigazítás?

E nyersanyagot ebben a tekintetben az appreciated.

Thanks & Regards,
fájlnak
  #2 (permalink)  
Old 06-29-2009
Jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Helyszín: NM
Hozzászólások: 5.794
Miért nem használjuk a cron vagy ütemezése a kódot? Ezek készülnek, hogy a parancsok vagy szkriptek futtatása pontosan a megfelelő időben.

Plusz, sleep (1) nem biztos, hogy aludni pontosan egy pillanatra.
  #3 (permalink)  
Old 06-30-2009
nsvora nsvora is offline
Regisztrált felhasználó
  
 

Join Date: Jun 2009
Hozzászólások: 2
Hi Jim,
Köszi a választ.
Igazából threads lehet ébredni bármikor alapuló ütemező, így a logika az volt, hogy ellenőrizze az idő a szál kell aludni, hogy annak összhangban áll 30 perces időközönként.

With Regards,
nsvora
  #4 (permalink)  
Old 07-01-2009
Jim McNAMARA jim mcnamara is offline Forum Staff  
...@...
  
 

Join Date: Feb 2004
Helyszín: NM
Hozzászólások: 5.794
Próbáltam közölnie kell ezt világosan:

Ön nem tudja garantálni, hogy pontosan mennyi ideig alvás. Meg kell adnod pár tócsa (fudge factor) az Ön második számítás így vagy úgy, hogy nem megy ki tökéletesen minden alkalommal - a példa feltételezi, hogy van POSIX megfelelő idő - azaz., no szökőmásodperceket.:

Kód:
calculate duration of sleep:
time_t how_long_to_sleep=1800;
how_long_to_sleep-= time(NULL) % 1800;
sleep(!how_long_to_sleep ? 1800 : how_long_to_sleep);

vizsgálati idő után ébresztés:

Kód:
time_t now=time(NULL);
now=now % 1800;
if( now < 2 && now > 1797)
   // sleep period ended close enough
else
  // sleep period is off by too much
fi

Ön is megpróbál usleep (érték), amely finomabb finomsága ms-ben, de újra érték a minimum. Ez lehet hosszabb. Például egy nagyobb prioritású feladat, mint ez fut.
Reply

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Ki
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 05:40 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0