blob: 4e829e057fd6894da1caa9d60a3767ca1039a370 [file] [log] [blame]
Serge Bazanskicc25bdf2018-10-25 14:02:58 +02001// +build linux
2
3package common
4
5import (
6 "os"
7 "os/exec"
8 "strings"
9)
10
11func DoSysctrl(mib string) ([]string, error) {
12 sysctl, err := exec.LookPath("/sbin/sysctl")
13 if err != nil {
14 return []string{}, err
15 }
16 cmd := exec.Command(sysctl, "-n", mib)
17 cmd.Env = getSysctrlEnv(os.Environ())
18 out, err := cmd.Output()
19 if err != nil {
20 return []string{}, err
21 }
22 v := strings.Replace(string(out), "{ ", "", 1)
23 v = strings.Replace(string(v), " }", "", 1)
24 values := strings.Fields(string(v))
25
26 return values, nil
27}
28
29func NumProcs() (uint64, error) {
30 f, err := os.Open(HostProc())
31 if err != nil {
32 return 0, err
33 }
34 defer f.Close()
35
36 list, err := f.Readdirnames(-1)
37 if err != nil {
38 return 0, err
39 }
40 return uint64(len(list)), err
41}