From 3230cc0a0ac4e94f8772bf4780ad7a5f9f15c052 Mon Sep 17 00:00:00 2001 From: Star Brilliant Date: Wed, 4 Oct 2017 01:10:58 +0800 Subject: [PATCH] Add systemd units --- Makefile | 10 +++++----- systemd/Makefile | 14 ++++++++++++++ systemd/doh-client.service | 15 +++++++++++++++ systemd/doh-server.service | 15 +++++++++++++++ 4 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 systemd/Makefile create mode 100644 systemd/doh-client.service create mode 100644 systemd/doh-server.service diff --git a/Makefile b/Makefile index 8e4af6a..213cbc0 100644 --- a/Makefile +++ b/Makefile @@ -9,13 +9,13 @@ clean: rm -f doh-client/doh-client doh-server/doh-server install: doh-client/doh-client doh-server/doh-server - install -Dm0755 doh-client/doh-client $(PREFIX)/bin/doh-client - install -Dm0755 doh-server/doh-server $(PREFIX)/bin/doh-server - setcap cap_net_bind_service=+ep $(PREFIX)/bin/doh-client - setcap cap_net_bind_service=+ep $(PREFIX)/bin/doh-server + install -Dm0755 doh-client/doh-client "$(DESTDIR)$(PREFIX)/bin/doh-client" + install -Dm0755 doh-server/doh-server "$(DESTDIR)$(PREFIX)/bin/doh-server" + $(MAKE) -C systemd install "DESTDIR=$(DESTDIR)" "PREFIX=$(PREFIX)" uninstall: - rm -f $(PREFIX)/bin/doh-client $(PREFIX)/bin/doh-server + rm -f "$(DESTDIR)$(PREFIX)/bin/doh-client" "$(DESTDIR)$(PREFIX)/bin/doh-server" + $(MAKE) -C systemd uninstall "DESTDIR=$(DESTDIR)" "PREFIX=$(PREFIX)" doh-client/doh-client: doh-client/client.go doh-client/main.go json-dns/error.go json-dns/globalip.go json-dns/marshal.go json-dns/response.go json-dns/unmarshal.go cd doh-client && $(GOBUILD) diff --git a/systemd/Makefile b/systemd/Makefile new file mode 100644 index 0000000..2d45d37 --- /dev/null +++ b/systemd/Makefile @@ -0,0 +1,14 @@ +.PHONY: install uninstall + +PREFIX = /usr/local +SYSTEMD_DIR = /usr/lib/systemd +SYSTEMD_UNIT_DIR = $(SYSTEMD_DIR)/system + +install: + install -Dm0644 doh-client.service "$(DESTDIR)$(SYSTEMD_UNIT_DIR)/doh-client.service" + install -Dm0644 doh-server.service "$(DESTDIR)$(SYSTEMD_UNIT_DIR)/doh-server.service" + systemctl daemon-reload || true + +uninstall: + rm -f "$(DESTDIR)$(SYSTEMD_UNIT_DIR)/doh-client.service" "$(DESTDIR)$(SYSTEMD_UNIT_DIR)/doh-server.service" + systemctl daemon-reload || true diff --git a/systemd/doh-client.service b/systemd/doh-client.service new file mode 100644 index 0000000..a11bf4c --- /dev/null +++ b/systemd/doh-client.service @@ -0,0 +1,15 @@ +[Unit] +Description=DNS-over-HTTPS Client +After=network.target + +[Service] +AmbientCapabilities=CAP_NET_BIND_SERVICE +ExecStart=/usr/local/bin/doh-client -addr :53 -upstream https://dns.google.com/resolve +LimitNOFILE=1048576 +Restart=always +RestartSec=3 +Type=simple +User=nobody + +[Install] +WantedBy=multi-user.target diff --git a/systemd/doh-server.service b/systemd/doh-server.service new file mode 100644 index 0000000..4873e15 --- /dev/null +++ b/systemd/doh-server.service @@ -0,0 +1,15 @@ +[Unit] +Description=DNS-over-HTTPS Server +After=network.target + +[Service] +AmbientCapabilities=CAP_NET_BIND_SERVICE +ExecStart=/usr/local/bin/doh-server +LimitNOFILE=1048576 +Restart=always +RestartSec=3 +Type=simple +User=nobody + +[Install] +WantedBy=multi-user.target