mirror of
https://github.com/shirou/gopsutil.git
synced 2025-05-01 13:48:52 +08:00

This is mostly intended for Linux, where we are returning the OS version in the PlatformVersion field, which seems reasonable. Often it is still useful to know which Linux kernel is running. For FreeBSD and Darwin the kernel version matches the platform version, since they previously used the kernel version for the platform version. For Windows the kernel version is empty, since there is no clear way to determine it.
48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package host
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/shirou/gopsutil/internal/common"
|
|
)
|
|
|
|
var invoke common.Invoker
|
|
|
|
func init() {
|
|
invoke = common.Invoke{}
|
|
}
|
|
|
|
// A HostInfoStat describes the host status.
|
|
// This is not in the psutil but it useful.
|
|
type InfoStat struct {
|
|
Hostname string `json:"hostname"`
|
|
Uptime uint64 `json:"uptime"`
|
|
BootTime uint64 `json:"bootTime"`
|
|
Procs uint64 `json:"procs"` // number of processes
|
|
OS string `json:"os"` // ex: freebsd, linux
|
|
Platform string `json:"platform"` // ex: ubuntu, linuxmint
|
|
PlatformFamily string `json:"platformFamily"` // ex: debian, rhel
|
|
PlatformVersion string `json:"platformVersion"` // version of the complete OS
|
|
KernelVersion string `json:"kernelVersion"` // version of the OS kernel (if available)
|
|
VirtualizationSystem string `json:"virtualizationSystem"`
|
|
VirtualizationRole string `json:"virtualizationRole"` // guest or host
|
|
HostID string `json:"hostid"` // ex: uuid
|
|
}
|
|
|
|
type UserStat struct {
|
|
User string `json:"user"`
|
|
Terminal string `json:"terminal"`
|
|
Host string `json:"host"`
|
|
Started int `json:"started"`
|
|
}
|
|
|
|
func (h InfoStat) String() string {
|
|
s, _ := json.Marshal(h)
|
|
return string(s)
|
|
}
|
|
|
|
func (u UserStat) String() string {
|
|
s, _ := json.Marshal(u)
|
|
return string(s)
|
|
}
|