activation of daemons. However, the primary
advantage of this scheme is that all providers
and all consumers of the sockets can be
- started in parallel as soon als all sockets
+ started in parallel as soon as all sockets
are established. In addition to that daemons
can be restarted with losing only a minimal
number of client transactions or even any
AC_ARG_WITH([systemdsystemunitdir],
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
-AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
-AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir"])</programlisting>
+if test "x$with_systemdsystemunitdir" != xno; then
+ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
+fi
+AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])</programlisting>
<para>This snippet allows automatic
installation of the unit files on systemd
<programlisting>%post
if [ $1 -eq 1 ]; then
- # Enable (but don't start) the units by default
+ # On install (not upgrade), enable (but don't start) the
+ # units by default
/bin/systemctl enable foobar.service foobar.socket >/dev/null 2>&1 || :
- # Alternatively, just call /bin/systemctl daemon-reload here,
- # if the daemon should not be enabled by default on package
+ # Alternatively, just call
+ # /bin/systemctl daemon-reload >/dev/null 2>&1 || :
+ # here, if the daemon should not be enabled by default on
# installation
fi
%preun
if [ $1 -eq 0 ]; then
- # Disable and stop the units
+ # On uninstall (not upgrade), disable and stop the units
/bin/systemctl disable foobar.service foobar.socket >/dev/null 2>&1 || :
/bin/systemctl stop foobar.service foobar.socket >/dev/null 2>&1 || :
fi
%postun
+# Reload init system configuration, to make systemd honour changed
+# or deleted unit files
+/bin/systemctl daemon-reload >/dev/null 2>&1 || :
if [ $1 -ge 1 ] ; then
- # On upgrade, reload init system configuration if we changed unit files
- /bin/systemctl daemon-reload >/dev/null 2>&1 || :
- # On upgrade, restart the daemon
+ # On upgrade (not uninstall), optionally, restart the daemon
/bin/systemctl try-restart foobar.service >/dev/null 2>&1 || :
fi</programlisting>
script and a native systemd service file, use
a fragment like the following:</para>
- <programlisting>%triggerin -- foobar < 0.47.11-1
+ <programlisting>%triggerun -- foobar < 0.47.11-1
if /sbin/chkconfig foobar ; then
/bin/systemctl enable foobar.service foobar.socket >/dev/null 2>&1 || :
fi</programlisting>