mirror of https://github.com/containers/podman.git
Instead of trying to write out own code to do basic process operations (e.g. checking if a PID is still running in a multi-OS friendly manner), use shirou/gopsutil, a multi-platform library that should abstract all the complexity away. Unlike our previous approach on Windows, this one should actually work. Signed-off-by: Matt Heon <mheon@redhat.com> |
||
|---|---|---|
| .. | ||
| .cirrus.yml | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| sysconf.go | ||
| sysconf_bsd.go | ||
| sysconf_darwin.go | ||
| sysconf_dragonfly.go | ||
| sysconf_freebsd.go | ||
| sysconf_generic.go | ||
| sysconf_linux.go | ||
| sysconf_netbsd.go | ||
| sysconf_openbsd.go | ||
| sysconf_posix.go | ||
| sysconf_solaris.go | ||
| sysconf_unsupported.go | ||
| zsysconf_defs_darwin.go | ||
| zsysconf_defs_dragonfly.go | ||
| zsysconf_defs_freebsd.go | ||
| zsysconf_defs_linux.go | ||
| zsysconf_defs_netbsd.go | ||
| zsysconf_defs_openbsd.go | ||
| zsysconf_defs_solaris.go | ||
| zsysconf_values_freebsd_386.go | ||
| zsysconf_values_freebsd_amd64.go | ||
| zsysconf_values_freebsd_arm.go | ||
| zsysconf_values_freebsd_arm64.go | ||
| zsysconf_values_freebsd_riscv64.go | ||
| zsysconf_values_linux_386.go | ||
| zsysconf_values_linux_amd64.go | ||
| zsysconf_values_linux_arm.go | ||
| zsysconf_values_linux_arm64.go | ||
| zsysconf_values_linux_loong64.go | ||
| zsysconf_values_linux_mips.go | ||
| zsysconf_values_linux_mips64.go | ||
| zsysconf_values_linux_mips64le.go | ||
| zsysconf_values_linux_mipsle.go | ||
| zsysconf_values_linux_ppc64.go | ||
| zsysconf_values_linux_ppc64le.go | ||
| zsysconf_values_linux_riscv64.go | ||
| zsysconf_values_linux_s390x.go | ||
| zsysconf_values_netbsd_386.go | ||
| zsysconf_values_netbsd_amd64.go | ||
| zsysconf_values_netbsd_arm.go | ||
| zsysconf_values_netbsd_arm64.go | ||
README.md
go-sysconf
sysconf for Go, without using cgo or external binaries (e.g. getconf).
Supported operating systems: Linux, macOS, DragonflyBSD, FreeBSD, NetBSD, OpenBSD, Solaris/Illumos.
All POSIX.1 and POSIX.2 variables are supported, see References for a complete list.
Additionally, the following non-standard variables are supported on some operating systems:
| Variable | Supported on |
|---|---|
SC_PHYS_PAGES |
Linux, macOS, FreeBSD, NetBSD, OpenBSD, Solaris/Illumos |
SC_AVPHYS_PAGES |
Linux, OpenBSD, Solaris/Illumos |
SC_NPROCESSORS_CONF |
Linux, macOS, FreeBSD, NetBSD, OpenBSD, Solaris/Illumos |
SC_NPROCESSORS_ONLN |
Linux, macOS, FreeBSD, NetBSD, OpenBSD, Solaris/Illumos |
SC_UIO_MAXIOV |
Linux |
Usage
package main
import (
"fmt"
"github.com/tklauser/go-sysconf"
)
func main() {
// get clock ticks, this will return the same as C.sysconf(C._SC_CLK_TCK)
clktck, err := sysconf.Sysconf(sysconf.SC_CLK_TCK)
if err == nil {
fmt.Printf("SC_CLK_TCK: %v\n", clktck)
}
}