in providers/aix/boottime_aix_ppc64.go [57:78]
func bootTime(filename string) (time.Time, error) {
// Get boot time from /etc/utmp
file, err := os.Open(filename)
if err != nil {
return time.Time{}, fmt.Errorf("failed to get host uptime: cannot open /etc/utmp: %w", err)
}
defer file.Close()
for {
var utmp utmp
if err := binary.Read(file, binary.BigEndian, &utmp); err != nil {
break
}
if utmp.Type == typeBootTime {
return time.Unix(utmp.Time, 0), nil
}
}
return time.Time{}, fmt.Errorf("failed to get host uptime: no utmp record: %w", err)
}