From f20605d85396132575a83da6b827f854c03dbf01 Mon Sep 17 00:00:00 2001 From: Prasanna Kumar Kalever Date: Fri, 11 Aug 2017 22:19:38 +0530 Subject: systemd: fix systemd dependency list This patch brings a wrapper target service unit 'gluster-block-target.service' which ensures tcmu-runner gets activated. To fix this properly we need a change in tcmu-runner [1] unit which has to define precedence of glusterd service. [1] https://github.com/open-iscsi/tcmu-runner/pull/296 Change-Id: I32d7d82eec03e0cc9111eb58241190af30244a3c Signed-off-by: Prasanna Kumar Kalever --- .gitignore | 2 +- gluster-block.spec.in | 4 ++++ systemd/Makefile.am | 5 +++-- systemd/gluster-block-target.service | 14 ++++++++++++++ systemd/gluster-blockd.service.in | 6 ++++-- 5 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 systemd/gluster-block-target.service diff --git a/.gitignore b/.gitignore index d66bf2f..dcd88ca 100644 --- a/.gitignore +++ b/.gitignore @@ -21,7 +21,7 @@ m4/ stamp-h1 .deps *.spec -*.service +gluster-blockd.service *.tar.gz cscope.* diff --git a/gluster-block.spec.in b/gluster-block.spec.in index c4216ae..e9e01e1 100644 --- a/gluster-block.spec.in +++ b/gluster-block.spec.in @@ -54,10 +54,14 @@ rm -rf ${RPM_BUILD_ROOT} %{_mandir}/man8/gluster-block*.8* %if ( 0%{?_with_systemd:1} ) %{_unitdir}/gluster-blockd.service +%{_unitdir}/gluster-block-target.service %config(noreplace) %{_sysconfdir}/sysconfig/gluster-blockd %endif %changelog +* Fri Aug 11 2017 Prasanna Kumar Kalever +- add wrapper target service unit + * Tue Jun 22 2017 Prasanna Kumar Kalever - update with missing dependencies diff --git a/systemd/Makefile.am b/systemd/Makefile.am index 2cdda4c..bbec9d4 100644 --- a/systemd/Makefile.am +++ b/systemd/Makefile.am @@ -2,11 +2,12 @@ DISTCLEANFILES = Makefile.in gluster-blockd.service CLEANFILES = *~ gluster-blockd.service -EXTRA_DIST = gluster-blockd.service.in gluster-blockd.sysconfig +EXTRA_DIST = gluster-blockd.service.in gluster-block-target.service \ + gluster-blockd.sysconfig if USE_SYSTEMD # systemddir is already defined through configure.ac -systemd_DATA = gluster-blockd.service +systemd_DATA = gluster-blockd.service gluster-block-target.service endif install-data-local: diff --git a/systemd/gluster-block-target.service b/systemd/gluster-block-target.service new file mode 100644 index 0000000..a509ec3 --- /dev/null +++ b/systemd/gluster-block-target.service @@ -0,0 +1,14 @@ +# This file is part of gluster-block. +# +# This is a wrapper unit over target.service which ensures that +# tcmu-runner.service is running which intern has a check to see if +# glusterd.service is active +# + +.include /usr/lib/systemd/system/target.service + +[Unit] +Conflicts=target.service +Requisite=glusterd.service +BindsTo=tcmu-runner.service +After=glusterd.service tcmu-runner.service diff --git a/systemd/gluster-blockd.service.in b/systemd/gluster-blockd.service.in index e6881ff..7a422df 100644 --- a/systemd/gluster-blockd.service.in +++ b/systemd/gluster-blockd.service.in @@ -1,7 +1,9 @@ [Unit] Description=Gluster block storage utility -Requires=rpcbind.service target.service tcmu-runner.service -After=rpcbind.service target.service tcmu-runner.service +Requisite=glusterd.service +Requires=rpcbind.service +BindsTo=gluster-block-target.service +After=gluster-block-target.service [Service] Type=simple -- cgit