Skip to content

Commit

Permalink
Add systemd service file
Browse files Browse the repository at this point in the history
Allows openfortivpn to act as system service.
The configuration is expected under $(sysconfdir)/openfortivpn/<NAME>.conf.

https://www.freedesktop.org/software/systemd/man/daemon.html#Installing%20systemd%20Service%20Files
  • Loading branch information
DimitriPapadopoulos committed Apr 15, 2020
1 parent 5574b45 commit 76001e5
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 4 deletions.
18 changes: 14 additions & 4 deletions Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -26,25 +26,35 @@ data_DATA=etc/openfortivpn/config.template

etc/openfortivpn/config: $(srcdir)/etc/openfortivpn/config.template
@$(MKDIR_P) etc/openfortivpn
$(AM_V_GEN)$(SED) -e '3,$$ s/^/# /' $(srcdir)/etc/openfortivpn/config.template >$@
$(AM_V_GEN)$(SED) -e '3,$$ s|^|# |' $(srcdir)/etc/openfortivpn/config.template >$@

install-data-hook: etc/openfortivpn/config
lib/systemd/system/[email protected]: $(srcdir)/lib/systemd/system/[email protected]
@$(MKDIR_P) lib/systemd/system
$(AM_V_GEN)$(SED) -e 's|[@]BINDIR[@]|$(bindir)|g;s|[@]SYSCONFDIR[@]|$(sysconfdir)|g' $(srcdir)/lib/systemd/system/[email protected] >$@

install-data-hook: etc/openfortivpn/config lib/systemd/system/[email protected]
if ! test -f $(DESTDIR)$(confdir)/config ; then \
$(MKDIR_P) $(DESTDIR)$(confdir) ; \
$(INSTALL) -m 600 etc/openfortivpn/config \
$(DESTDIR)$(confdir)/config ; \
fi
if HAVE_SYSTEMD
$(MKDIR_P) $(systemdsystemunitdir)
$(INSTALL) lib/systemd/system/[email protected] \
$(systemdsystemunitdir)
endif

dist_man_MANS = doc/openfortivpn.1

doc/openfortivpn.1: $(srcdir)/doc/openfortivpn.1.in
@$(MKDIR_P) doc
$(AM_V_GEN)$(SED) -e 's|[@]SYSCONFDIR[@]|$(sysconfdir)|g;s|[@]DATADIR[@]|$(datadir)|g' $(srcdir)/doc/openfortivpn.1.in >$@

all-local: etc/openfortivpn/config
all-local: etc/openfortivpn/config lib/systemd/system/[email protected]

clean-local:
-rm -f etc/openfortivpn/config
-rm -f lib/systemd/system/[email protected]
-rm -f doc/openfortivpn.1

EXTRA_DIST = autogen.sh CHANGELOG.md LICENSE LICENSE.OpenSSL README.md doc/openfortivpn.1.in $(data_DATA)
EXTRA_DIST = autogen.sh CHANGELOG.md LICENSE LICENSE.OpenSSL README.md doc/openfortivpn.1.in $(data_DATA) lib/systemd/system/[email protected]
17 changes: 17 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -452,5 +452,22 @@ AS_IF([test "x$enable_resolvconf" = "xyes"], [
AC_MSG_NOTICE([USE_RESOLVCONF... 0])
])

# install systemd service file
AC_ARG_WITH([systemdsystemunitdir],
[AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],,
[with_systemdsystemunitdir=auto])
AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
AS_IF([test "x$def_systemdsystemunitdir" = "x"],
[AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
[AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
with_systemdsystemunitdir=no],
[with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
[AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])


AC_CONFIG_COMMANDS([timestamp], [touch src/.dirstamp])
AC_OUTPUT(Makefile)
12 changes: 12 additions & 0 deletions lib/systemd/system/[email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[Unit]
Description=OpenFortiVPN for %I
After=network-online.target

[Service]
Type=simple
PrivateTmp=true
ExecStart=@BINDIR@/openfortivpn -c @SYSCONFDIR@/openfortivpn/%I.conf
OOMScoreAdjust=-100

[Install]
WantedBy=multi-user.target

0 comments on commit 76001e5

Please sign in to comment.