Portál AbcLinuxu, 16. dubna 2024 17:37


Dotaz: Jak zjistit skutečný uptime

29.4.2014 10:38 LinuxakMichal
Jak zjistit skutečný uptime
Přečteno: 1124×
Odpovědět | Admin
Zdravím, jak mám zjistit sutečný uptime počítače? V /proc/stat je btime tedy čas spuštění, na tom asi bazíruje příkaz uptime protože započítává i čas, kdy počítač dřímal v suspend to ram nebo hibernaci. Počítání přerušení časovače mi nějak nevychází a to ani nemám tickless kernel, na tom by to asi bylo zcela od věci. Existuje nějaká jiná metoda?

Zajímavé je, že ve Windows je implicitně uváděn skutečný uptime a dohledávat je třeba naopak ten "neskutečný" ;-)
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

29.4.2014 17:50 Franta
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Odpovědět | | Sbalit | Link | Blokovat | Admin
Napíšeš příkaz:

$ uptime

17:46:44 up 1 day, 6:26, 4 users, load average: 1,17, 0,79, 0,64
FrostyX avatar 29.4.2014 18:22 FrostyX | skóre: 27 | blog: Frostyho_blog | Olomouc
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Tam je započítan i čas spánku.
FrostyX.cz | 1984 was not supposed to be an instruction manual.
29.4.2014 18:43 Jakurta
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Jak kde ;-)
root@maguro:/ # uptime
up time: 20:13:03, idle time: 03:04:05, sleep time: 17:49:09
29.4.2014 20:18 LinuxakMichal
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
A kde roste uptime, ktery neco takoveho umi? A je to na Linuxu (tady je linuxova poradna :-) )?
30.4.2014 07:21 Jakurta
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Je to Linux, ale nehledal jsem, ktery Androidi patch to dela :-)
29.4.2014 20:26 LinuxakMichal
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zjistil jsem, ze volani sysinfo() z sys/sysinfo.h vraci taktez "neskutecnou" hodnotu.
30.4.2014 08:22 LinuxakMichal
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Odpovědět | | Sbalit | Link | Blokovat | Admin
Bug tykajici se uptime byl hlasen do ubuntu v roce 2010. Misto vyreseni problemu bylo navrhovanym "resenim" uprava nepravdive casti vety v man uptime (how long the system has been running). Neudelali ani to.
30.4.2014 08:47 LinuxakMichal
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Odpovědět | | Sbalit | Link | Blokovat | Admin
Relevantni diskuze z toku 2006(!!): http://www.gossamer-threads.com/lists/linux/kernel/633844.
I don't know exactly when it was changed, but jiffies is now updated when we return from suspend, which causes the uptime to effectively increase while we are suspended.

Pri dalsim zkoumani jsem zjistil, ze jadro spravnou hodnotu zna protoze dmesg (cerpajici z /dev/kmsg) ukazuje spravne kdy se stala udalost aniz by zapocitavalo suspend. Teda v tomto kontextu je to vlasnte spatne. Protoze pak dmesg -T ukazuje nesmyslne casy (na coz ovsem upozornuje manpage

       -T, --ctime
              Print human-readable timestamps.

              Be aware that the timestamp could be inaccurate!  The time
              source used for the logs is not updated after system
              SUSPEND/RESUME.
Spravne by se to chovani kmsg<->sysstat tedy melo prohodit aby to davalo smysl ;-)
30.4.2014 09:32 LinuxakMichal
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Odpovědět | | Sbalit | Link | Blokovat | Admin

Tak jsem se dopatral, odkud se bere cas pro kmsg a na zaklade toho napsal miniutilitku nazvanou realuptime

#include <stddef.h>
#include <stdio.h>
#include <time.h>

int main(void){

    struct timespec monotime;
    clock_gettime(CLOCK_MONOTONIC, &monotime);

    int seconds = monotime.tv_sec % 60;
    int minutes = (monotime.tv_sec / 60) % 60;
    int hours = monotime.tv_sec / 3600;

    printf("Real uptime: %02d:%02d:%02d\n", hours, minutes, seconds);

    return 0;
}
Takze vyreseno. V linuxu (je veci nazoru zda v kernelu nebo v userspace, asi v tom druhem) rozhodne je bug, ktery, jak se zda, skoro nikoho netrapi. Ale da se workaroudovat. Pripadam si uplne jako ve windows :-p
Josef Kufner avatar 30.4.2014 09:36 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
A poslal jsi toto i na relevantní místa? Tady to nikdo z vývojářů jádra nenajde (většina jich neumí česky a ti co umí, to asi nebudou hledat v češtině).
Hello world ! Segmentation fault (core dumped)
30.4.2014 13:54 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
A je to opravdu bug? Není to prostě jen tak, že různí lidé mají různé názory na to, čemu by se mělo říkat uptime? Za sebe můžu říct, že kdybych dostal otázku, která definice mi připadá správná, musel bych odpovědět, že nevím.
30.4.2014 14:28 LinuxakMichal
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
No nastesti je to normalni anglicke slovo, ktere ma zcela jasnou definici (a nejen pocitacovou) viz http://dictionary.reference.com/browse/uptime?s=t

take viz http://en.wikipedia.org/wiki/Uptime

tudiz se lingvisticko/filozoficke debate muzeme zcela vyhnout. Hybernovany/uspany/suspendovany jiste neni working and available.

I pokud bychom prijali divnou definici odporujici vyse uvedenemu, byl by bug v man uptime protoze "how long the system has been running" proste neodpovida zobrazenemu cislu.
30.4.2014 15:00 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Jak jsem napsal, já to zdaleka nevidím tak jednoznačně a dokážu si velice dobře představit, že se najde dost lidí, kterým je to úplně stejně jasné jako vám, ale s opačným výsledkem.
30.4.2014 15:33 LinuxakMichal
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Pochybujete o definici slova uptime uvedene ve slovniku a na wiki nebo si myslite, ze vyklad teto definice je mozne provest nekolika zpusoby (tedy ze definice je nejednoznacna v naprosto zasadni veci)? V obou pripadech by tedy byl slovnik a wiki na prd.

Nebo si myslite, ze definice jsou k nicemu a kazdy si muze definovat vyznam slov jak se mu zlibi?

30.4.2014 15:44 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
A opravdu si myslíš, že je ten výklad tak jasný, už jen s ohledem na slůvko suspend a co se pod ním skrývá, ve stavu „sleep“ a „hybrid sleep“ platí „a machine, such as a computer, actually operates“ tedy tento čas, podle odkázané definice musí být započten.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
Heron avatar 30.4.2014 15:48 Heron | skóre: 53 | blog: root_at_heron | Olomouc
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Opravdu by mě zajímalo, jaké číslo by mělo uptime vrátit, pokud bychom se přesně drželi oné definice.
30.4.2014 16:03 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime
Bych si tipl, že asi celkový čas života daného HW, mimo čas kdy tam nebyla žádá baterie a byli vybity všechny kondíky ;-).
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†
30.4.2014 16:39 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime

Svůj názor jsem napsal jednoznačně. A pokud to z toho snad nebylo jasné, nemyslím si, že výklad slova na jakési wiki je závazný pro to, čemu se v Linuxu bude říkat uptime. Koneckonců třeba load average se také na různých systémech počítá různě a nikdo kolem toho nedělá humbuk.

Co se informací poskytovaných jádrem týká, tam bych pak jednoznačně upřednostnil zpětnou kompatibilitu. Ohledně uptime prezentovaného userspace utilitami je mi to celkem jedno, jen by asi bylo vhodné, aby všechny ukazovaly totéž - což by asi nebylo úplně snadné zajistit, pokud by se to mělo změnit.

30.4.2014 15:32 Šangala | skóre: 56 | blog: Dutá Vrba - Wally
Rozbalit Rozbalit vše Re: Jak zjistit skutečný uptime

To bude sranda až to jednou někde někdy bude dávat hausnumera :-)

Bo, jestli se nepeltu, není nikde garantováno, že 0 je start counteru a naopak je explicitně uvedeno „…since some unspecified starting point.“.
To, že trpíš stihomamem, ještě neznamená, že po tobě nejdou. ⰞⰏⰉⰓⰀⰜⰉ ⰗⰞⰅⰜⰘ ⰈⰅⰏⰉ ⰒⰑⰎⰉⰁⰕⰅ ⰏⰉ ⰒⰓⰄⰅⰎ ·:⁖⁘⁙†

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.