If systemd is enabled we install unit files to $libdir/systemd/system
(or the path specified by SYSTEMD_UNIT_DIR).
The unit files are generated on the fly with matching $sbindir.
Signed-off-by: Christian Hesse <mail@eworm.de>
Acked-by: David Sommerseth <davids@openvpn.net>
Message-Id: <20170124143947.27385-1-list@eworm.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg13940.html
Signed-off-by: David Sommerseth <davids@openvpn.net>
| ... | ... |
@@ -378,6 +378,7 @@ AC_ARG_VAR([NETSTAT], [path to netstat utility]) # tests |
| 378 | 378 |
AC_ARG_VAR([MAN2HTML], [path to man2html utility]) |
| 379 | 379 |
AC_ARG_VAR([GIT], [path to git utility]) |
| 380 | 380 |
AC_ARG_VAR([SYSTEMD_ASK_PASSWORD], [path to systemd-ask-password utility]) |
| 381 |
+AC_ARG_VAR([SYSTEMD_UNIT_DIR], [Path of systemd unit directory @<:@default=LIBDIR/systemd/system@:>@]) |
|
| 381 | 382 |
AC_PATH_PROGS([IFCONFIG], [ifconfig],, [$PATH:/usr/local/sbin:/usr/sbin:/sbin]) |
| 382 | 383 |
AC_PATH_PROGS([ROUTE], [route],, [$PATH:/usr/local/sbin:/usr/sbin:/sbin]) |
| 383 | 384 |
AC_PATH_PROGS([IPROUTE], [ip],, [$PATH:/usr/local/sbin:/usr/sbin:/sbin]) |
| ... | ... |
@@ -1099,6 +1100,12 @@ if test "$enable_systemd" = "yes" ; then |
| 1099 | 1099 |
OPTIONAL_SYSTEMD_LIBS="${libsystemd_LIBS}"
|
| 1100 | 1100 |
AC_DEFINE(ENABLE_SYSTEMD, 1, [Enable systemd integration]) |
| 1101 | 1101 |
LIBS="${saved_LIBS}"
|
| 1102 |
+ |
|
| 1103 |
+ if test -n "${SYSTEMD_UNIT_DIR}"; then
|
|
| 1104 |
+ systemdunitdir="${SYSTEMD_UNIT_DIR}"
|
|
| 1105 |
+ else |
|
| 1106 |
+ systemdunitdir="\${libdir}/systemd/system"
|
|
| 1107 |
+ fi |
|
| 1102 | 1108 |
fi |
| 1103 | 1109 |
|
| 1104 | 1110 |
|
| ... | ... |
@@ -1275,6 +1282,8 @@ sampledir="\$(docdir)/sample" |
| 1275 | 1275 |
AC_SUBST([plugindir]) |
| 1276 | 1276 |
AC_SUBST([sampledir]) |
| 1277 | 1277 |
|
| 1278 |
+AC_SUBST([systemdunitdir]) |
|
| 1279 |
+ |
|
| 1278 | 1280 |
VENDOR_SRC_ROOT="\$(abs_top_srcdir)/vendor/" |
| 1279 | 1281 |
VENDOR_DIST_ROOT="\$(abs_top_builddir)/vendor/dist" |
| 1280 | 1282 |
VENDOR_BUILD_ROOT="\$(abs_top_builddir)/vendor/.build" |
| ... | ... |
@@ -1313,6 +1322,7 @@ AC_CONFIG_FILES([ |
| 1313 | 1313 |
distro/Makefile |
| 1314 | 1314 |
distro/rpm/Makefile |
| 1315 | 1315 |
distro/rpm/openvpn.spec |
| 1316 |
+ distro/systemd/Makefile |
|
| 1316 | 1317 |
include/Makefile |
| 1317 | 1318 |
src/Makefile |
| 1318 | 1319 |
src/compat/Makefile |
| 18 | 16 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,26 @@ |
| 0 |
+# |
|
| 1 |
+# OpenVPN -- An application to securely tunnel IP networks |
|
| 2 |
+# over a single UDP port, with support for SSL/TLS-based |
|
| 3 |
+# session authentication and key exchange, |
|
| 4 |
+# packet encryption, packet authentication, and |
|
| 5 |
+# packet compression. |
|
| 6 |
+# |
|
| 7 |
+# Copyright (C) 2017 OpenVPN Technologies, Inc. <sales@openvpn.net> |
|
| 8 |
+# |
|
| 9 |
+ |
|
| 10 |
+%.service: %.service.in Makefile |
|
| 11 |
+ $(AM_V_GEN)sed -e 's|\@sbindir\@|$(sbindir)|' \ |
|
| 12 |
+ $< > $@.tmp && mv $@.tmp $@ |
|
| 13 |
+ |
|
| 14 |
+EXTRA_DIST = \ |
|
| 15 |
+ openvpn-client@.service.in \ |
|
| 16 |
+ openvpn-server@.service.in |
|
| 17 |
+ |
|
| 18 |
+if ENABLE_SYSTEMD |
|
| 19 |
+systemdunit_DATA = \ |
|
| 20 |
+ openvpn-client@.service \ |
|
| 21 |
+ openvpn-server@.service |
|
| 22 |
+endif |
|
| 23 |
+ |
|
| 24 |
+MAINTAINERCLEANFILES = \ |
|
| 25 |
+ $(srcdir)/Makefile.in |
| 0 | 26 |
deleted file mode 100644 |
| ... | ... |
@@ -1,22 +0,0 @@ |
| 1 |
-[Unit] |
|
| 2 |
-Description=OpenVPN tunnel for %I |
|
| 3 |
-After=syslog.target network-online.target |
|
| 4 |
-Wants=network-online.target |
|
| 5 |
-Documentation=man:openvpn(8) |
|
| 6 |
-Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage |
|
| 7 |
-Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO |
|
| 8 |
- |
|
| 9 |
-[Service] |
|
| 10 |
-Type=notify |
|
| 11 |
-PrivateTmp=true |
|
| 12 |
-RuntimeDirectory=openvpn-client |
|
| 13 |
-RuntimeDirectoryMode=0710 |
|
| 14 |
-WorkingDirectory=/etc/openvpn/client |
|
| 15 |
-ExecStart=/usr/sbin/openvpn --suppress-timestamps --nobind --config %i.conf |
|
| 16 |
-CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE |
|
| 17 |
-LimitNPROC=10 |
|
| 18 |
-DeviceAllow=/dev/null rw |
|
| 19 |
-DeviceAllow=/dev/net/tun rw |
|
| 20 |
- |
|
| 21 |
-[Install] |
|
| 22 |
-WantedBy=multi-user.target |
| 23 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,22 @@ |
| 0 |
+[Unit] |
|
| 1 |
+Description=OpenVPN tunnel for %I |
|
| 2 |
+After=syslog.target network-online.target |
|
| 3 |
+Wants=network-online.target |
|
| 4 |
+Documentation=man:openvpn(8) |
|
| 5 |
+Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage |
|
| 6 |
+Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO |
|
| 7 |
+ |
|
| 8 |
+[Service] |
|
| 9 |
+Type=notify |
|
| 10 |
+PrivateTmp=true |
|
| 11 |
+RuntimeDirectory=openvpn-client |
|
| 12 |
+RuntimeDirectoryMode=0710 |
|
| 13 |
+WorkingDirectory=/etc/openvpn/client |
|
| 14 |
+ExecStart=@sbindir@/openvpn --suppress-timestamps --nobind --config %i.conf |
|
| 15 |
+CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE |
|
| 16 |
+LimitNPROC=10 |
|
| 17 |
+DeviceAllow=/dev/null rw |
|
| 18 |
+DeviceAllow=/dev/net/tun rw |
|
| 19 |
+ |
|
| 20 |
+[Install] |
|
| 21 |
+WantedBy=multi-user.target |
| 0 | 22 |
deleted file mode 100644 |
| ... | ... |
@@ -1,22 +0,0 @@ |
| 1 |
-[Unit] |
|
| 2 |
-Description=OpenVPN service for %I |
|
| 3 |
-After=syslog.target network-online.target |
|
| 4 |
-Wants=network-online.target |
|
| 5 |
-Documentation=man:openvpn(8) |
|
| 6 |
-Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage |
|
| 7 |
-Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO |
|
| 8 |
- |
|
| 9 |
-[Service] |
|
| 10 |
-Type=notify |
|
| 11 |
-PrivateTmp=true |
|
| 12 |
-RuntimeDirectory=openvpn-server |
|
| 13 |
-RuntimeDirectoryMode=0710 |
|
| 14 |
-WorkingDirectory=/etc/openvpn/server |
|
| 15 |
-ExecStart=/usr/sbin/openvpn --status %t/openvpn-server/status-%i.log --status-version 2 --suppress-timestamps --config %i.conf |
|
| 16 |
-CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE |
|
| 17 |
-LimitNPROC=10 |
|
| 18 |
-DeviceAllow=/dev/null rw |
|
| 19 |
-DeviceAllow=/dev/net/tun rw |
|
| 20 |
- |
|
| 21 |
-[Install] |
|
| 22 |
-WantedBy=multi-user.target |
| 23 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,22 @@ |
| 0 |
+[Unit] |
|
| 1 |
+Description=OpenVPN service for %I |
|
| 2 |
+After=syslog.target network-online.target |
|
| 3 |
+Wants=network-online.target |
|
| 4 |
+Documentation=man:openvpn(8) |
|
| 5 |
+Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage |
|
| 6 |
+Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO |
|
| 7 |
+ |
|
| 8 |
+[Service] |
|
| 9 |
+Type=notify |
|
| 10 |
+PrivateTmp=true |
|
| 11 |
+RuntimeDirectory=openvpn-server |
|
| 12 |
+RuntimeDirectoryMode=0710 |
|
| 13 |
+WorkingDirectory=/etc/openvpn/server |
|
| 14 |
+ExecStart=@sbindir@/openvpn --status %t/openvpn-server/status-%i.log --status-version 2 --suppress-timestamps --config %i.conf |
|
| 15 |
+CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_OVERRIDE |
|
| 16 |
+LimitNPROC=10 |
|
| 17 |
+DeviceAllow=/dev/null rw |
|
| 18 |
+DeviceAllow=/dev/net/tun rw |
|
| 19 |
+ |
|
| 20 |
+[Install] |
|
| 21 |
+WantedBy=multi-user.target |