Informatyk, podróżnik, fotograf

Informatyczne podejście do życia w obrazkach, kolorach i dźwiękach

Kamil Porembiński

Uptime liczone podczas hibernacji?

Prowadzę sobie projekt sysinfo project. Sprawa jest prosta. Odpalasz aplikację, która wysyła co 15 minut uptime Twojego komputera. I oto wczoraj zgłoszono błąd:

Wiec tak na dzien dobry dosc powazny problem odkryty czystym przypadkiem - jak oszukac uptime.

Kazdy zna taka magiczna opcje hibernacji systemu, prawdaz?

W latwy spsosob za pomoca Hib. mozna oszukac rzeczywisty uptime systemu, gdyz w przypadku windowsa bedacego w hibernacji liczy sie czas Hib jako uptime.

Przykladem niech bedzie moje drugie konto w celu ukazania problemu: Rurek:) Lap 9 d 5 godz 54 min 15 sek

Laptop ow ciagle jest trzymany w stanie Hib gdy nikt na nim nic nie robi. W rzeczywistosci moze windows pochodzil z 10h lacznie... ale nie 9 dni!

I jak się okazało w trakcie hibernacji system Windows dalej sobie liczy czas pracy (uptime). sic!

I teraz myślę jak obejść ten problem....

Nie można wymusić w skrypcie logowania danych na serwerze by odstęp między aktualizacjami nie był większy niż X czasy, a jeśli jest to uznajemy, że system się zahibernował.. Czemu? Ponieważ nie zawsze mamy połączenie z Internetem, serwer padnie i inne warunki losowe, ewentualnie ktoś wyłączył aplikację.

Kolejnym pomysłem było przed każdym wysłaniem zapisywanie w systemie znacznika czasu wysłania danych. Aplikacja by sprawdzała kiedy ostatni raz coś wysyłała i podejmowała odpowiednie kroki. np. odejmowała od uptime czas hibernacji. No, ale tu powstaje kolejny problem. Wyłączamy aplikację, hibernujemy system a potem po powstaniu lecimy dalej i wysyłamy duży uptime....

Zatem co robić? :) Ciekawe czy uptime liczy się również jak zahibernujemy jakiegoś Linuksa.

ikonka 31 stycznia 2007, 11:04:51

Komentarze

Dex, 31 stycznia 2007, 12:59:30

Na Linuksie też się tak samo z hibernacją liczy; pracowałem sobie kiedyś od popołudnia do wieczora, potem hibernacja i tak kilka dni z rzędu… a potem patrzę i się dziwię jakim cudem w ciągu 4 dni mi się zebrało 3x więcej uptime niż laptop był włączony…

Więc musisz to załatwić po stronie serwera raczej – bo po stronie klienta jednak tak czy inaczej łatwiej oszukiwać ;)

paszczak000, 31 stycznia 2007, 14:27:30

No to chyba jakiś żart. Z jakiej racji systemy liczą uptime skoro nie pracują? :/ Takim sposobem to mogę zrobić sobie zaraz X lat na byle systemie ;/

ikonka 50k07, 31 stycznia 2007, 16:06:56

czyzby nadszedł taki czas kiedy sysinfo oprze sie o NTP?

paszczak000, 31 stycznia 2007, 22:02:03

NTP? Network Time Protocol? A jakim cudem chcesz to zrobić? Jak aplikacja ma się komunikować ze światem jak ona śpi? :) Tutaj raczej potrzebne będzie rozwiązanie offlinowe ;)

Podpis:
Treść:
Strona WWW (opcjonalnie):
Wpisz kod:code
Składnia Textile Lite jest włączona.

Powered by Jogger. Copyright © 2002-2003 Justin Mecham & JabberPL Group

Licencja: Creative Commons Uznanie autorstwa 3.0