mirror of
https://github.com/ScuroNeko/mtg.git
synced 2026-08-31 15:24:01 +03:00
Setup rlimits for application
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"io"
|
||||
"math/rand"
|
||||
"os"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
"go.uber.org/zap"
|
||||
@@ -15,6 +16,7 @@ import (
|
||||
|
||||
"github.com/9seconds/mtg/config"
|
||||
"github.com/9seconds/mtg/proxy"
|
||||
"github.com/juju/errors"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -81,12 +83,20 @@ var (
|
||||
secret = app.Arg("secret", "Secret of this proxy.").Required().String()
|
||||
)
|
||||
|
||||
func main() {
|
||||
func init() {
|
||||
rand.Seed(time.Now().UTC().UnixNano())
|
||||
|
||||
app.Version(version)
|
||||
|
||||
}
|
||||
|
||||
func main() {
|
||||
kingpin.MustParse(app.Parse(os.Args[1:]))
|
||||
|
||||
err := setRLimit()
|
||||
if err != nil {
|
||||
usage(err.Error())
|
||||
}
|
||||
|
||||
conf, err := config.NewConfig(*debug, *verbose,
|
||||
*bindIP, *bindPort,
|
||||
*publicIPv4, *publicIPv4Port,
|
||||
@@ -125,6 +135,23 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func setRLimit() (err error) {
|
||||
rLimit := syscall.Rlimit{}
|
||||
err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
|
||||
if err != nil {
|
||||
err = errors.Annotate(err, "Cannot get rlimit")
|
||||
return
|
||||
}
|
||||
rLimit.Cur = rLimit.Max
|
||||
|
||||
err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit)
|
||||
if err != nil {
|
||||
err = errors.Annotate(err, "Cannot set rlimit")
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func printURLs(data interface{}) {
|
||||
encoder := json.NewEncoder(os.Stdout)
|
||||
encoder.SetEscapeHTML(false)
|
||||
|
||||
Reference in New Issue
Block a user