Browse Source

sys files & limit

ls 5 years ago
parent
commit
25ec86ba1d
2 changed files with 42 additions and 0 deletions
  1. 18 0
      sys/files.go
  2. 24 0
      sys/limit.go

+ 18 - 0
sys/files.go

@@ -0,0 +1,18 @@
+package sys
+
+import (
+	"os"
+	"os/exec"
+	"path/filepath"
+	"strings"
+)
+
+// GetCurrentDir get current process directory
+func GetCurrentDir() string {
+	file, _ := exec.LookPath(os.Args[0])
+	path, _ := filepath.Abs(file)
+
+	idx := strings.LastIndex(path, string(os.PathSeparator))
+
+	return path[:idx]
+}

+ 24 - 0
sys/limit.go

@@ -0,0 +1,24 @@
+package sys
+
+import (
+	"syscall"
+)
+
+// SetLimit set NOFILE
+func SetLimit(max uint64) error {
+	var rlimit syscall.Rlimit
+
+	err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rlimit)
+	if err != nil {
+		return err
+	}
+
+	rlimit.Cur = max
+	rlimit.Max = max
+	err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rlimit)
+	if err != nil {
+		return err
+	}
+
+	return nil
+}