diff mbox

[rdma-core,v2] ibacm: Add systemd service file

Message ID 20170717094244.9253-1-benjamin.drung@profitbricks.com (mailing list archive)
State Accepted
Headers show

Commit Message

Benjamin Drung July 17, 2017, 9:42 a.m. UTC
ibacm ships only a sysvinit script but no corresponding systemd unit
file. The RedHat package ships its own systemd unit file. Thus make it
available to all.

The ibacm service depends on sysinit.target (DefaultDependencies=yes)
and the proposed rdma or rdma-load-modules services declare a dependency
Before=sysinit.target. Thus the kernel modules will be loaded before the
sysinit target and the ibacm service does not need to depend on (the not
yet existing) rdma service.

Signed-off-by: Benjamin Drung <benjamin.drung@profitbricks.com>
---
 debian/ibacm.install   |  1 +
 ibacm/CMakeLists.txt   |  5 +++++
 ibacm/ibacm.service.in | 11 +++++++++++
 redhat/ibacm.service   | 12 ------------
 redhat/rdma-core.spec  |  1 -
 5 files changed, 17 insertions(+), 13 deletions(-)
 create mode 100644 ibacm/ibacm.service.in
 delete mode 100644 redhat/ibacm.service

Comments

Leon Romanovsky July 18, 2017, 12:53 p.m. UTC | #1
On Mon, Jul 17, 2017 at 11:42:44AM +0200, Benjamin Drung wrote:
> ibacm ships only a sysvinit script but no corresponding systemd unit
> file. The RedHat package ships its own systemd unit file. Thus make it
> available to all.
>
> The ibacm service depends on sysinit.target (DefaultDependencies=yes)
> and the proposed rdma or rdma-load-modules services declare a dependency
> Before=sysinit.target. Thus the kernel modules will be loaded before the
> sysinit target and the ibacm service does not need to depend on (the not
> yet existing) rdma service.
>
> Signed-off-by: Benjamin Drung <benjamin.drung@profitbricks.com>
> ---

Thanks, applied.
diff mbox

Patch

diff --git a/debian/ibacm.install b/debian/ibacm.install
index c8be4a6f..41cf5bad 100644
--- a/debian/ibacm.install
+++ b/debian/ibacm.install
@@ -1,4 +1,5 @@ 
 etc/init.d/ibacm
+lib/systemd/system/ibacm.service
 usr/bin/ib_acme
 usr/include/infiniband/acm.h
 usr/include/infiniband/acm_prov.h
diff --git a/ibacm/CMakeLists.txt b/ibacm/CMakeLists.txt
index 7eba294b..5e3ea5e2 100644
--- a/ibacm/CMakeLists.txt
+++ b/ibacm/CMakeLists.txt
@@ -64,3 +64,8 @@  rdma_subst_install(FILES "ibacm.init.in"
   DESTINATION "${CMAKE_INSTALL_INITDDIR}"
   RENAME "ibacm"
   PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ OWNER_EXECUTE GROUP_EXECUTE WORLD_EXECUTE)
+
+rdma_subst_install(FILES "ibacm.service.in"
+  DESTINATION "${CMAKE_INSTALL_SYSTEMD_SERVICEDIR}"
+  RENAME ibacm.service
+  PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ)
diff --git a/ibacm/ibacm.service.in b/ibacm/ibacm.service.in
new file mode 100644
index 00000000..6cbb203e
--- /dev/null
+++ b/ibacm/ibacm.service.in
@@ -0,0 +1,11 @@ 
+[Unit]
+Description=Starts the InfiniBand Address Cache Manager daemon
+Documentation=man:ibacm file:@CMAKE_INSTALL_SYSCONFDIR@/rdma/ibacm_opts.cfg
+After=opensm.service
+
+[Service]
+Type=forking
+ExecStart=@prefix@/sbin/ibacm
+
+[Install]
+WantedBy=network.target
diff --git a/redhat/ibacm.service b/redhat/ibacm.service
deleted file mode 100644
index bb28928c..00000000
--- a/redhat/ibacm.service
+++ /dev/null
@@ -1,12 +0,0 @@ 
-[Unit]
-Description=Starts the InfiniBand Address Cache Manager daemon
-Documentation=man:ibacm file:/etc/rdma/ibacm_opts.cfg
-Requires=rdma.service
-After=rdma.service opensm.service
-
-[Service]
-Type=forking
-ExecStart=/usr/sbin/ibacm
-
-[Install]
-WantedBy=network.target
diff --git a/redhat/rdma-core.spec b/redhat/rdma-core.spec
index 5cebc251..817013bc 100644
--- a/redhat/rdma-core.spec
+++ b/redhat/rdma-core.spec
@@ -271,7 +271,6 @@  install -D -m0755 redhat/rdma.mlx4-setup.sh %{buildroot}%{_libexecdir}/mlx4-setu
 # ibacm
 bin/ib_acme -D . -O
 install -D -m0644 ibacm_opts.cfg %{buildroot}%{_sysconfdir}/rdma/
-install -D -m0644 redhat/ibacm.service %{buildroot}%{_unitdir}/
 
 # Delete the package's init.d scripts
 rm -rf %{buildroot}/%{_initrddir}/