LINUX.ORG.RU
решено ФорумAdmin

Как узнать время бодрствования системы

 


0

2

Употребляю термин «бодрствование» вместо «работы», так как в данном случае отличие есть. Необходимо узнать время, когда компьютер вышел из состояния сна (!), сколько проработал и когда снова погрузился в сон или был выключен. Речь идёт именно обо сне! Я знаю утилиту last, которая позволяет сделать всё вышеперечисленное, но в отношении работы компьютера, завершения работы и включения. Хочется то же самое, но для сна.


hibernate считается за «сон»?

Benis
()
#include <stdio.h>
#include <time.h>

/*
    CLOCK_MONOTONIC
        - on Linux corresponds to the number of seconds that the system
          has been running since it was booted. This clock does not count
          time that the system is suspended.

    CLOCK_BOOTTIME
        - Identical to CLOCK_MONOTONIC, except that it also includes any
          time  that  the  system  is  suspended.
*/

int main() {
    struct timespec t;
    puts("Time since last boot, seconds:");
    clock_gettime(CLOCK_MONOTONIC_RAW, &t);
    printf("    Active: %lu.%09lu\n", t.tv_sec, t.tv_nsec);
    clock_gettime(CLOCK_BOOTTIME, &t);
    printf("    Total : %lu.%09lu\n", t.tv_sec, t.tv_nsec);
    return 0;
}
$ gcc clock_gettime.c && ./a.out
Time since last boot, seconds:
    Active: 95538.098605262
    Total : 426022.508396744
anonymous
()

journalctl --identifier systemd-sleep

bass ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.