mirror of
https://github.com/project-zot/zot.git
synced 2026-06-18 05:28:07 +08:00
432fde45af
fix: allow zot to build on a FreeBSD host (#3246) The build works as long as the protoc package is installed on the build host. This also fixes lint checks when building on FreeBSD, working around common lint complaints caused by the fact that rlim_t is int64 on FreeBSD. Signed-off-by: Doug Rabson <dfr@rabson.org>
36 lines
903 B
Go
36 lines
903 B
Go
//go:build !windows
|
|
// +build !windows
|
|
|
|
package api
|
|
|
|
import (
|
|
"os"
|
|
"runtime"
|
|
"strings"
|
|
"syscall"
|
|
|
|
"zotregistry.dev/zot/pkg/log"
|
|
)
|
|
|
|
// DumpRuntimeParams dumps important runtime state such as file and socket limits.
|
|
func DumpRuntimeParams(log log.Logger) {
|
|
var rLimit syscall.Rlimit
|
|
|
|
evt := log.Info().Int("cpus", runtime.NumCPU()) //nolint: zerologlint
|
|
|
|
err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
|
|
if err == nil {
|
|
evt = evt.Uint64("max. open files", uint64(rLimit.Cur)) //nolint: unconvert,gosec // required for *BSD
|
|
}
|
|
|
|
if content, err := os.ReadFile("/proc/sys/net/core/somaxconn"); err == nil {
|
|
evt = evt.Str("listen backlog", strings.TrimSuffix(string(content), "\n"))
|
|
}
|
|
|
|
if content, err := os.ReadFile("/proc/sys/user/max_inotify_watches"); err == nil {
|
|
evt = evt.Str("max. inotify watches", strings.TrimSuffix(string(content), "\n"))
|
|
}
|
|
|
|
evt.Msg("runtime params")
|
|
}
|