blob: e1b02c82a7567cb25644038de34c5652216dafdf [file] [edit]
//go:build linux
package sysutil
import (
"bytes"
"os"
"strconv"
"time"
)
var (
btimePrefix = []byte("btime ")
lineEnd = []byte("\n")
)
func init() {
buf, err := os.ReadFile("/proc/stat")
if err != nil {
btime = time.Now()
return
}
for _, line := range bytes.SplitN(buf, lineEnd, -1) {
if bytes.HasPrefix(line, btimePrefix) {
t, err := strconv.ParseInt(string(line[len(btimePrefix):]), 10, 64)
if err != nil {
btime = time.Now()
return
}
btime = time.Unix(t, 0)
break
}
}
}