12345678910111213141516171819202122232425262728293031323334 |
- // +build linux
- package sysutil
- import (
- "bytes"
- "io/ioutil"
- "strconv"
- "time"
- )
- var (
- btimePrefix = []byte("btime ")
- lineEnd = []byte("\n")
- )
- func init() {
- buf, err := ioutil.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
- }
- }
- }
|