uptime.go 377 B

123456789101112131415161718192021
  1. package node
  2. import (
  3. "fmt"
  4. "os"
  5. "path"
  6. "strconv"
  7. "strings"
  8. )
  9. func uptime(procRoot string) (float64, error) {
  10. data, err := os.ReadFile(path.Join(procRoot, "uptime"))
  11. if err != nil {
  12. return 0, err
  13. }
  14. fields := strings.Fields(string(data))
  15. if len(fields) != 2 {
  16. return 0, fmt.Errorf("invalid format of /proc/uptime")
  17. }
  18. return strconv.ParseFloat(fields[0], 64)
  19. }