From 4fce600e7bfb6a2a181b18d0ba05a2c53cf5c037 Mon Sep 17 00:00:00 2001 From: Michal Hrusecky Date: Fri, 21 Aug 2015 10:41:14 +0200 Subject: [PATCH] Use target for drivers in systemd This allows much better granularity and better monitoring in case of multiple UPSes. --- configure.ac | 2 +- scripts/systemd/Makefile.am | 9 +++++---- scripts/systemd/nut-driver.service.in | 10 ---------- scripts/systemd/nut-driver.target | 3 +++ scripts/systemd/nut-driver@.service.in | 12 ++++++++++++ scripts/systemd/nut-server.service.in | 4 ++-- 6 files changed, 23 insertions(+), 17 deletions(-) delete mode 100644 scripts/systemd/nut-driver.service.in create mode 100644 scripts/systemd/nut-driver.target create mode 100644 scripts/systemd/nut-driver@.service.in diff --git a/configure.ac b/configure.ac index 74e0e5b635..883a2f73b3 100644 --- a/configure.ac +++ b/configure.ac @@ -1295,7 +1295,7 @@ AC_OUTPUT([ scripts/HP-UX/postinstall scripts/python/Makefile scripts/systemd/Makefile - scripts/systemd/nut-driver.service + scripts/systemd/nut-driver@.service scripts/systemd/nut-monitor.service scripts/systemd/nut-server.service scripts/systemd/nutshutdown diff --git a/scripts/systemd/Makefile.am b/scripts/systemd/Makefile.am index b62796d2d7..0f08dbce86 100644 --- a/scripts/systemd/Makefile.am +++ b/scripts/systemd/Makefile.am @@ -3,14 +3,15 @@ EXTRA_DIST = README if HAVE_SYSTEMD systemdsystemunit_DATA = \ - nut-driver.service \ + nut-driver@.service \ nut-monitor.service \ - nut-server.service + nut-server.service \ + nut-driver.target systemdsystemshutdown_SCRIPTS = nutshutdown else -EXTRA_DIST += nut-driver.service.in nut-monitor.service.in \ - nut-server.service.in nutshutdown.in +EXTRA_DIST += nut-driver@.service.in nut-monitor.service.in \ + nut-server.service.in nutshutdown.in nut-driver.target endif diff --git a/scripts/systemd/nut-driver.service.in b/scripts/systemd/nut-driver.service.in deleted file mode 100644 index f81ac6996f..0000000000 --- a/scripts/systemd/nut-driver.service.in +++ /dev/null @@ -1,10 +0,0 @@ -[Unit] -Description=Network UPS Tools - power device driver controller -After=local-fs.target network.target -StopWhenUnneeded=yes - -[Service] -ExecStart=@SBINDIR@/upsdrvctl start -ExecStop=@SBINDIR@/upsdrvctl stop -Type=forking - diff --git a/scripts/systemd/nut-driver.target b/scripts/systemd/nut-driver.target new file mode 100644 index 0000000000..b743f5ced7 --- /dev/null +++ b/scripts/systemd/nut-driver.target @@ -0,0 +1,3 @@ +[Unit] +Description=Network UPS Tools - power device driver controller +After=local-fs.target network.target diff --git a/scripts/systemd/nut-driver@.service.in b/scripts/systemd/nut-driver@.service.in new file mode 100644 index 0000000000..b3533ac469 --- /dev/null +++ b/scripts/systemd/nut-driver@.service.in @@ -0,0 +1,12 @@ +[Unit] +Description=Network UPS Tools - device driver for %I +After=local-fs.target network.target +PartOf=nut-driver.target + +[Service] +ExecStart=@SBINDIR@/upsdrvctl start %i +ExecStop=@SBINDIR@/upsdrvctl stop %i +Type=forking + +[Install] +WantedBy=multi-user.target nut-driver.target diff --git a/scripts/systemd/nut-server.service.in b/scripts/systemd/nut-server.service.in index fe201451e1..07b41eaee1 100644 --- a/scripts/systemd/nut-server.service.in +++ b/scripts/systemd/nut-server.service.in @@ -1,10 +1,10 @@ [Unit] Description=Network UPS Tools - power devices information server -After=local-fs.target network.target nut-driver.service +After=local-fs.target network.target nut-driver.target # We don't Require drivers to be successfully started! This would be # a change of behavior compared to init SysV, and could prevent from # accessing successfully started, at least to audit a system. -Wants=nut-driver.service +Wants=nut-driver.target Before=nut-monitor.service [Service]