Получить дату / время последней перезагрузки программно - PullRequest
4 голосов
/ 11 февраля 2011

Я хотел бы найти время последней перезагрузки программно в Linux.Я использую C и C ++ в моем модуле.

Есть ли API?

Ответы [ 3 ]

5 голосов
/ 11 февраля 2011

Вы можете вызвать uptime или взглянуть на /proc/uptime.Учитывая текущее время и зная, как долго работала система, можно рассчитать время последней перезагрузки.

В качестве альтернативы, запись btime в /proc/stat дает время загрузки напрямую (в секундах сэпоха) - поиск man proc для btime.

1 голос
/ 11 февраля 2011

Прямой api отсутствует, но вы можете прочитать /proc/uptime «файл», чтобы узнать, сколько секунд работала система, вычесть это из текущего времени - и предположить, что это время перезагрузки машины.

/ proc / uptime Этот файл содержит два числа: время работы системы (в секундах) и количество времени, проведенного в режиме ожидания (в секундах).

0 голосов
/ 11 февраля 2011

Кроме того, вы можете узнать время последней перезагрузки, прочитав файл / var / log / wtmp. Это двоичный файл, но вы можете проанализировать его (или вашу версию C)

http://pastebin.com/nSVw82cZ

[ВНИМАНИЕ! ужасный стиль кодирования!]

...