From 099d3fcf2c5dc5a8fed06c17d71556a5542e1b15 Mon Sep 17 00:00:00 2001 From: ffdfgdfg Date: Wed, 22 Jan 2020 11:54:40 +0800 Subject: [PATCH] custom npc systemd service script, increase open files limit --- cmd/npc/npc.go | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/cmd/npc/npc.go b/cmd/npc/npc.go index cb2efba..309ca68 100644 --- a/cmd/npc/npc.go +++ b/cmd/npc/npc.go @@ -35,6 +35,31 @@ var ( debug = flag.Bool("debug", true, "npc debug") ) +const systemdScript = `[Unit] +Description={{.Description}} +ConditionFileIsExecutable={{.Path|cmdEscape}} +{{range $i, $dep := .Dependencies}} +{{$dep}} {{end}} +[Service] +LimitNOFILE=65536 +StartLimitInterval=5 +StartLimitBurst=10 +ExecStart={{.Path|cmdEscape}}{{range .Arguments}} {{.|cmd}}{{end}} +{{if .ChRoot}}RootDirectory={{.ChRoot|cmd}}{{end}} +{{if .WorkingDirectory}}WorkingDirectory={{.WorkingDirectory|cmdEscape}}{{end}} +{{if .UserName}}User={{.UserName}}{{end}} +{{if .ReloadSignal}}ExecReload=/bin/kill -{{.ReloadSignal}} "$MAINPID"{{end}} +{{if .PIDFile}}PIDFile={{.PIDFile|cmd}}{{end}} +{{if and .LogOutput .HasOutputFileSupport -}} +StandardOutput=file:/var/log/{{.Name}}.out +StandardError=file:/var/log/{{.Name}}.err +{{- end}} +Restart=always +RestartSec=120 +[Install] +WantedBy=multi-user.target +` + func main() { flag.Parse() logs.Reset() @@ -54,8 +79,6 @@ func main() { // init service options := make(service.KeyValue) - options["Restart"] = "on-success" - options["SuccessExitStatus"] = "1 2 8 SIGKILL" svcConfig := &service.Config{ Name: "Npc", DisplayName: "nps内网穿透客户端", @@ -66,6 +89,7 @@ func main() { svcConfig.Dependencies = []string{ "Requires=network.target", "After=network-online.target syslog.target"} + svcConfig.Option["SystemdScript"] = systemdScript } for _, v := range os.Args[1:] { switch v {