diff --git a/host/host_linux.go b/host/host_linux.go index a9f3749..838609c 100644 --- a/host/host_linux.go +++ b/host/host_linux.go @@ -61,9 +61,20 @@ func Info() (*InfoStat, error) { ret.Procs = numProcs } - values, err := common.DoSysctrl("kernel.random.boot_id") - if err == nil && len(values) == 1 && values[0] != "" { - ret.HostID = values[0] + sysProductUUID := common.HostSys("class/dmi/id/product_uuid") + switch { + case common.PathExists(sysProductUUID): + lines, err := common.ReadLines(sysProductUUID) + if err == nil && len(lines) > 0 && lines[0] != "" { + ret.HostID = lines[0] + break + } + fallthrough + default: + values, err := common.DoSysctrl("kernel.random.boot_id") + if err == nil && len(values) == 1 && values[0] != "" { + ret.HostID = values[0] + } } return ret, nil