Browse Source

add fileutils_darwin.go in pkg/fileutils to support darwin platform

Signed-off-by: allencloud <allen.sun@daocloud.io>
allencloud 9 năm trước cách đây
mục cha
commit
d2dd1a1f7d
1 tập tin đã thay đổi với 27 bổ sung0 xóa
  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
+}