vhostmd is long overdue for a systemd service file. Add one, and while at it support specifying the type of init system in the configure script. Signed-off-by: Jim Fehlig <jfehlig@xxxxxxxx> --- Makefile.am | 36 +++++++++++++++++++++++++++++++++--- configure.ac | 24 +++++++++++++++++++++++- vhostmd.service | 14 ++++++++++++++ 3 files changed, 70 insertions(+), 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index 8234d98..4f8af15 100644 --- a/Makefile.am +++ b/Makefile.am @@ -7,11 +7,41 @@ EXTRA_DIST = $(doc_DATA) vhostmd.init vhostmd.spec autogen.sh AUTOMAKE_OPTIONS=dist-bzip2 -install-data-local: +install-data-local: install-init-systemv install-init-systemd $(MKDIR_P) $(DESTDIR)/etc/vhostmd - $(MKDIR_P) $(DESTDIR)/etc/init.d - $(MKDIR_P) $(DESTDIR)/usr/sbin $(INSTALL_DATA) $(srcdir)/vhostmd.xml $(DESTDIR)/etc/vhostmd/vhostmd.conf $(INSTALL_DATA) $(srcdir)/vhostmd.dtd $(DESTDIR)/etc/vhostmd $(INSTALL_DATA) $(srcdir)/metric.dtd $(DESTDIR)/etc/vhostmd + +uninstall-local: uninstall-init-systemv uninstall-init-systemd + rm -f $(DESTDIR)/etc/vhostmd/vhostmd.conf + rm -f $(DESTDIR)/etc/vhostmd/vhostmd.dtd + rm -f $(DESTDIR)/etc/vhostmd/metric.dtd + rmdir $(DESTDIR)/etc/vhostmd || : + +if INIT_SCRIPT_SYSTEMV +install-init-systemv: $(srcdir)/vhostmd.init + $(MKDIR_P) $(DESTDIR)$(sysconfdir)/init.d $(INSTALL_SCRIPT) $(srcdir)/vhostmd.init $(DESTDIR)/etc/init.d/vhostmd + +uninstall-init-systemv: + rm -f $(DESTDIR)$(sysconfdir)/init.d/vhostmd + rmdir $(DESTDIR)$(sysconfdir)/init.d || : +else ! INIT_SCRIPT_SYSTEMV +install-init-systemv: +uninstall-init-systemv: +endif ! INIT_SCRIPT_SYSTEMV + +if INIT_SCRIPT_SYSTEMD +SYSTEMD_UNIT_DIR = $(prefix)/lib/systemd/system +install-init-systemd: $(srcdir)/vhostmd.service + $(MKDIR_P) $(DESTDIR)$(SYSTEMD_UNIT_DIR) + $(INSTALL_DATA) $(srcdir)/vhostmd.service $(DESTDIR)$(SYSTEMD_UNIT_DIR)/vhostmd.service + +uninstall-init-systemd: + rm -f $(DESTDIR)$(SYSTEMD_UNIT_DIR)/vhostmd.service + rmdir $(DESTDIR)$(SYSTEMD_UNIT_DIR) || : +else ! INIT_SCRIPT_SYSTEMD +install-init-systemd: +uninstall-init-systemd: +endif ! INIT_SCRIPT_SYSTEMD diff --git a/configure.ac b/configure.ac index 27c8488..b0a07c7 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT(Virtual Host Metrics Daemon, 0.5, jfehlig@xxxxxxxxxx, vhostmd) +AC_INIT(Virtual Host Metrics Daemon, 0.5, jfehlig@xxxxxxxx, vhostmd) AC_CONFIG_SRCDIR(vhostmd/vhostmd.c) AC_CONFIG_HEADERS([config.h]) @@ -82,6 +82,28 @@ AC_ARG_WITH([xenstore], esac],[AC_CHECK_HEADER(xs.h, with_xenstore=true)]) AM_CONDITIONAL(WITH_XENSTORE, test x$with_xenstore = xtrue) +# Configure argument to support type of init system +AC_ARG_WITH([init_script], + [AS_HELP_STRING([--with-init-script], + [Type of init script to install: systemv, systemd, check @<:@default=check@:>@])], + [], + [with_init_script=check]) +init_systemv=no +init_systemd=no +if test "$with_init_script" = check && type systemctl >/dev/null 2>&1; then + init_systemd=yes +else + init_systemv=yes +fi +case "${with_init_script}" in + systemv) init_systemv=yes;; + systemd) init_systemd=yes;; + check) ;; + *) AC_MSG_ERROR([Unknown initscript type $with_init_script]);; +esac +AM_CONDITIONAL([INIT_SCRIPT_SYSTEMV], test "$init_systemv" = "yes") +AM_CONDITIONAL([INIT_SCRIPT_SYSTEMD], test "$init_systemd" = "yes") + AC_OUTPUT(vhostmd/Makefile include/Makefile libmetrics/Makefile diff --git a/vhostmd.service b/vhostmd.service new file mode 100644 index 0000000..9d50523 --- /dev/null +++ b/vhostmd.service @@ -0,0 +1,14 @@ +[Unit] +Description=Daemon for collecting virutalization host metrics +After=libvirtd.service +Documentation=man:vhostmd(8) + +[Service] +Type=forking +ExecStart=/usr/sbin/vhostmd +ExecReload=/bin/kill -HUP $MAINPID +KillMode=process +Restart=on-failure + +[Install] +WantedBy=multi-user.target -- 2.16.3 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list