diff --git a/server/disk_avail.go b/server/disk_avail.go index 412cea8b..d3056cf8 100644 --- a/server/disk_avail.go +++ b/server/disk_avail.go @@ -1,4 +1,4 @@ -// Copyright 2020 The NATS Authors +// Copyright 2020-2022 The NATS Authors // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at @@ -11,8 +11,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -//go:build !windows && !openbsd && !wasm -// +build !windows,!openbsd,!wasm +//go:build !windows && !openbsd && !netbsd && !wasm +// +build !windows,!openbsd,!netbsd,!wasm package server diff --git a/server/disk_avail_netbsd.go b/server/disk_avail_netbsd.go new file mode 100644 index 00000000..d50af707 --- /dev/null +++ b/server/disk_avail_netbsd.go @@ -0,0 +1,22 @@ +// Copyright 2022 The NATS Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//go:build netbsd +// +build netbsd + +package server + +// TODO - See if there is a version of this for NetBSD. +func diskAvailable(storeDir string) int64 { + return JetStreamMaxStoreDefault +} diff --git a/server/pse/pse_netbsd.go b/server/pse/pse_netbsd.go new file mode 100644 index 00000000..d8393f67 --- /dev/null +++ b/server/pse/pse_netbsd.go @@ -0,0 +1,36 @@ +// Copyright 2022 The NATS Authors +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Copied from pse_openbsd.go + +package pse + +import ( + "fmt" + "os" + "os/exec" +) + +// ProcUsage returns CPU usage +func ProcUsage(pcpu *float64, rss, vss *int64) error { + pidStr := fmt.Sprintf("%d", os.Getpid()) + out, err := exec.Command("ps", "o", "pcpu=,rss=,vsz=", "-p", pidStr).Output() + if err != nil { + *rss, *vss = -1, -1 + return fmt.Errorf("ps call failed:%v", err) + } + fmt.Sscanf(string(out), "%f %d %d", pcpu, rss, vss) + *rss *= 1024 // 1k blocks, want bytes. + *vss *= 1024 // 1k blocks, want bytes. + return nil +}