The /System/Library/CoreServices/ServerVersion.plist exists on macOS servers , but not on a workstation such as my laptop. The actual terminoly is mostly borrowed from the windows equivalent as @Lomanic suggested. In theory, this should make interpreting the results from the two platforms a bit more consistent.
Note: The macOS server application can be installed on almost any macOS workstation to make it a server that can manage other apple devices.
gopsutil is a transitive dependency of another project that I am integrating
into an internal build system. We target multiple platforms and as a part
of the build system for the large internal repo, we calculate the build
graph used to determine what targets have changed and need to be build /
tested as a single DAG for all platforms.
gopsutil currently does not form a DAG if linux and any other platform are
considered at the same time. linux is the only platform where the process
package imports the host package.
To remove this cycle, the relevant methods have been moved to internal/common
with the linux build tag and are consumed the host and process packages.
Remains backward compatible.
When encountering non-fatal errors SensorsTemperatures() returns the
temperatures for all the sensor we could read successfully. In that
case the custom error contains a list of all the non-fatal errors
encountered.
Example usage:
_, err := SensorsTemperatures()
if err != nil {
warns, ok := err.(*Warnings)
if ok {
fmt.Printf("%v\n", err)
for i, w := range warns.List {
fmt.Printf("Warning %v: %v\n", i+1, w)
}
} else {
t.Errorf("%v", err)
}
}
This commit add hour handling in convertCPUTimes function.
The time string usually comes from macOS command line:
ps -a -o stime,utime -p <pid>
which could contain hour string.
When hw.smt is enabled, and it's enabled by default from 6.4, the
number of cpus given by `runtime.NumCPU()` is half of the total: only
the cpuN with N = 0,2,4,... are used by the system. We need to detect
that and ask for the correct stats.