Jelajahi Sumber

Merge pull request #22472 from allencloud/make-pkg-fileutils-support-darwin

add fileutils_darwin.go in pkg/fileutils to support darwin platform
Sebastiaan van Stijn 9 tahun lalu
induk
melakukan
92766c4b83
1 mengubah file dengan 27 tambahan dan 0 penghapusan
  1. 27 0
      pkg/fileutils/fileutils_darwin.go

+ 27 - 0
pkg/fileutils/fileutils_darwin.go

@@ -0,0 +1,27 @@
+package fileutils
+
+import (
+	"os"
+	"os/exec"
+	"strconv"
+	"strings"
+)
+
+// GetTotalUsedFds returns the number of used File Descriptors by
+// executing `lsof -p PID`
+func GetTotalUsedFds() int {
+	pid := os.Getpid()
+
+	cmd := exec.Command("lsof", "-p", strconv.Itoa(pid))
+
+	output, err := cmd.CombinedOutput()
+	if err != nil {
+		return -1
+	}
+
+	outputStr := strings.TrimSpace(string(output))
+
+	fds := strings.Split(outputStr, "\n")
+
+	return len(fds) - 1
+}