From d862c834de7bbdeec849befc879deb786bf1d30b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A5=B6=E7=88=B8?= Date: Wed, 11 Dec 2019 13:34:22 +0800 Subject: [PATCH] =?UTF-8?q?systemd=20=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 +++-- go.mod | 2 ++ script/build.sh | 2 ++ script/nezha-agent.service | 30 ++++++++++++++++++++++++++++++ script/nezha-dashboard.service | 30 ++++++++++++++++++++++++++++++ 5 files changed, 67 insertions(+), 2 deletions(-) create mode 100755 script/build.sh create mode 100644 script/nezha-agent.service create mode 100644 script/nezha-dashboard.service diff --git a/.gitignore b/.gitignore index 7a577be..e1743c2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ *.dll *.so *.dylib -*.pb.go # Test binary, build with `go test -c` *.test @@ -12,5 +11,7 @@ # Output of the go coverage tool, specifically when used with LiteIDE *.out +.DS_Store +*.pb.go /data -.DS_Store \ No newline at end of file +/release \ No newline at end of file diff --git a/go.mod b/go.mod index 912e532..a3855a4 100644 --- a/go.mod +++ b/go.mod @@ -22,5 +22,7 @@ require ( github.com/spf13/viper v1.6.1 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 golang.org/x/sys v0.0.0-20191128015809-6d18c012aee9 // indirect + golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135 // indirect google.golang.org/grpc v1.25.1 + honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc // indirect ) diff --git a/script/build.sh b/script/build.sh new file mode 100755 index 0000000..0b6a008 --- /dev/null +++ b/script/build.sh @@ -0,0 +1,2 @@ +# !/bin/sh +xgo -v -targets=linux/amd64 -dest release -out nezha-$1 -pkg cmd/$1/main.go . diff --git a/script/nezha-agent.service b/script/nezha-agent.service new file mode 100644 index 0000000..fc7ec70 --- /dev/null +++ b/script/nezha-agent.service @@ -0,0 +1,30 @@ +[Unit] +Description=Nezha Agent +After=syslog.target +After=network.target +After=nezha-dashboard.service + +[Service] +# Modify these two values and uncomment them if you have +# repos with lots of files and get an HTTP error 500 because +# of that +### +#LimitMEMLOCK=infinity +#LimitNOFILE=65535 +Type=simple +#User=root +#Group=root +WorkingDirectory=/root/nezha/agent/ +ExecStart=/root/nezha/agent/nezha-agent-linux-amd64 -d -s server_addr -i client_id -p client_secret +Restart=always +#Environment=DEBUG=true + +# Some distributions may not support these hardening directives. If you cannot start the service due +# to an unknown option, comment out the ones not supported by your version of systemd. +ProtectSystem=full +PrivateDevices=yes +PrivateTmp=yes +NoNewPrivileges=true + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/script/nezha-dashboard.service b/script/nezha-dashboard.service new file mode 100644 index 0000000..d2f682a --- /dev/null +++ b/script/nezha-dashboard.service @@ -0,0 +1,30 @@ +[Unit] +Description=Nezha Dashborad +After=syslog.target +After=network.target +After=mariadb.service mysqld.service postgresql.service memcached.service redis.service + +[Service] +# Modify these two values and uncomment them if you have +# repos with lots of files and get an HTTP error 500 because +# of that +### +#LimitMEMLOCK=infinity +#LimitNOFILE=65535 +Type=simple +#User=root +#Group=root +WorkingDirectory=/root/nezha/dashboard/ +ExecStart=/root/nezha/dashboard/nezha-dashboard-linux-amd64 +Restart=always +#Environment=DEBUG=true + +# Some distributions may not support these hardening directives. If you cannot start the service due +# to an unknown option, comment out the ones not supported by your version of systemd. +ProtectSystem=full +PrivateDevices=yes +PrivateTmp=yes +NoNewPrivileges=true + +[Install] +WantedBy=multi-user.target \ No newline at end of file