diff --git a/etc/Makefile.am b/etc/Makefile.am index 097e65f7..bb70a93d 100644 --- a/etc/Makefile.am +++ b/etc/Makefile.am @@ -3,8 +3,10 @@ LIBTOOL += --quiet sysconf_DATA = c2s.xml.dist router.xml.dist s2s.xml.dist sm.xml.dist jabberd.cfg.dist router-users.xml.dist router-filter.xml.dist initdir = $(prefix)/etc/init init_DATA = jabberd-c2s.conf jabberd-router.conf jabberd-s2s.conf jabberd-sm.conf -configs = $(sysconf_DATA) $(init_DATA) -EXTRA_DIST = $(sysconf_DATA:%.dist=%.dist.in) $(init_DATA:%.conf=%.conf.in) +systemddir = $(prefix)/lib/systemd/system +systemd_DATA = jabberd-sm.service jabberd.service jabberd-s2s.service jabberd-router.service jabberd-c2s.service +configs = $(sysconf_DATA) $(init_DATA) $(systemd_DATA) +EXTRA_DIST = $(sysconf_DATA:%.dist=%.dist.in) $(init_DATA:%.conf=%.conf.in) $(systemd_DATA:%.service=%.service.in) SUBDIRS = templates @@ -18,7 +20,7 @@ edit = sed \ -e 's,@libdir\@,$(libdir),g' \ -e 's,@pkglibdir\@,$(pkglibdir),g' -$(configs): $(sysconf_DATA:%.dist=@srcdir@/%.dist.in) $(init_DATA:%.conf=@srcdir@/%.conf.in) +$(configs): $(sysconf_DATA:%.dist=@srcdir@/%.dist.in) $(init_DATA:%.conf=@srcdir@/%.conf.in) $(systemd_DATA:%.service=%.service.in) @echo "generating $@ from $@.in"; \ edit='$(edit)'; \ list='$(jabberd_bin)'; for p in $$list; do \ @@ -30,7 +32,7 @@ $(configs): $(sysconf_DATA:%.dist=@srcdir@/%.dist.in) $(init_DATA:%.conf=@srcdir mv $@.tmp $@ install-data-hook: - @list='$(configs)'; for p in $$list; do \ + @list='$(sysconf_DATA)'; for p in $$list; do \ dest=`echo $$p | sed -e s/.dist//`; \ if test -f $(DESTDIR)$(sysconfdir)/$$dest; then \ echo "$@ will not overwrite existing $(DESTDIR)$(sysconfdir)/$$dest"; \ diff --git a/etc/jabberd-c2s.service.in b/etc/jabberd-c2s.service.in new file mode 100644 index 00000000..58513e87 --- /dev/null +++ b/etc/jabberd-c2s.service.in @@ -0,0 +1,12 @@ +[Unit] +Description=Jabber Client To Server Connector +Requires=jabberd-router.service +After=network.target jabberd-router.service +BindTo=jabberd.service + +[Service] +User=jabber +ExecStart=@bindir@/@jabberd_c2s_bin@ -c @sysconfdir@/c2s.xml + +[Install] +WantedBy=multi-user.target diff --git a/etc/jabberd-router.service.in b/etc/jabberd-router.service.in new file mode 100644 index 00000000..e14cc198 --- /dev/null +++ b/etc/jabberd-router.service.in @@ -0,0 +1,11 @@ +[Unit] +Description=Jabber Router XML Packet Distributior +After=network.target +BindTo=jabberd.service + +[Service] +User=jabber +ExecStart=@bindir@/@jabberd_router_bin@ -c @sysconfdir@/router.xml + +[Install] +WantedBy=multi-user.target diff --git a/etc/jabberd-s2s.service.in b/etc/jabberd-s2s.service.in new file mode 100644 index 00000000..06af5067 --- /dev/null +++ b/etc/jabberd-s2s.service.in @@ -0,0 +1,12 @@ +[Unit] +Description=Jabber Server To Server Connector +Requires=jabberd-router.service +After=network.target jabberd-router.service +BindTo=jabberd.service + +[Service] +User=jabber +ExecStart=@bindir@/@jabberd_s2s_bin@ -c @sysconfdir@/s2s.xml + +[Install] +WantedBy=multi-user.target diff --git a/etc/jabberd-sm.service.in b/etc/jabberd-sm.service.in new file mode 100644 index 00000000..1c5c6480 --- /dev/null +++ b/etc/jabberd-sm.service.in @@ -0,0 +1,11 @@ +[Unit] +Description=Jabber IM Session Manager +After=network.target +BindTo=jabberd.service + +[Service] +User=jabber +ExecStart=@bindir@/@jabberd_sm_bin@ -c @sysconfdir@/sm.xml + +[Install] +WantedBy=multi-user.target diff --git a/etc/jabberd.service.in b/etc/jabberd.service.in new file mode 100644 index 00000000..a4a6dda6 --- /dev/null +++ b/etc/jabberd.service.in @@ -0,0 +1,13 @@ +[Unit] +Description=Jabber Server +Requires=jabberd-router.service jabberd-sm.service jabberd-c2s.service jabberd-s2s.service +After=network.target jabberd-router.service jabberd-sm.service jabberd-c2s.service jabberd-s2s.service +BindTo=jabberd-router.service jabberd-sm.service jabberd-c2s.service jabberd-s2s.service + +[Service] +Type=oneshot +ExecStart=/bin/true +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target