From: Neil Brown <neilb@suse.de>
To: Steve Dickson <SteveD@redhat.com>
Cc: linux-nfs@vger.kernel.org
Subject: [PATCH 2/6] systemd units: create nfs-config.service as single location to process config.
Date: Thu, 20 Feb 2014 17:55:30 +1100 [thread overview]
Message-ID: <20140220065530.7320.61569.stgit@notabene.brown> (raw)
In-Reply-To: <20140220065345.7320.49992.stgit@notabene.brown>
Instead of processing the config information into command lines every
time it might be needed, do it once in a separate service that other
services can Want.
Signed-off-by: NeilBrown <neilb@suse.de>
---
systemd/README | 3 +--
systemd/nfs-config.service | 7 +++++++
systemd/nfs-idmapd.service | 5 +++--
systemd/nfs-mountd.service | 5 +++--
systemd/nfs-server.service | 4 +++-
systemd/rpc-gssd.service | 4 +++-
systemd/rpc-statd-notify.service | 5 +++--
systemd/rpc-statd.service | 5 +++--
systemd/rpc-svcgssd.service | 5 +++--
9 files changed, 29 insertions(+), 14 deletions(-)
create mode 100644 systemd/nfs-config.service
diff --git a/systemd/README b/systemd/README
index 8359530098f4..a2a5f0634726 100644
--- a/systemd/README
+++ b/systemd/README
@@ -56,8 +56,7 @@ Distro specific commandline configuration can be provided by
installing a script /usr/lib/systemd/scripts/nfs-utils_env.sh
This should write /run/sysconfig/nfs-utils based on configuration
information such as in /etc/sysconfig/nfs or /etc/defaults/nfs.
-It should write to a tmp file and rename to the target to
-avoid parallel units seeing incomplete copies of the file.
+It is run once by nfs-config.service.
rpc.gssd and rpc.svcgssd are assumed to be needed if /etc/krb5.keytab
is present.
diff --git a/systemd/nfs-config.service b/systemd/nfs-config.service
new file mode 100644
index 000000000000..4cf2ecc76e4a
--- /dev/null
+++ b/systemd/nfs-config.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Preprocess NFS configuration
+
+[Service]
+type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/lib/systemd/scripts/nfs-utils_env.sh
diff --git a/systemd/nfs-idmapd.service b/systemd/nfs-idmapd.service
index 7d0dd84d8a44..11895e234438 100644
--- a/systemd/nfs-idmapd.service
+++ b/systemd/nfs-idmapd.service
@@ -3,9 +3,10 @@ Description=NFSv4 ID-name mapping service
PartOf=nfs-utils.service
+Wants=nfs-config.service
+After=nfs-config.service
+
[Service]
EnvironmentFile=-/run/sysconfig/nfs-utils
-ExecStartPre=-/usr/lib/systemd/scritps/nfs-utils_env.sh
-
Type=forking
ExecStart=/usr/sbin/rpc.idmapd $RPCIDMAPDARGS
diff --git a/systemd/nfs-mountd.service b/systemd/nfs-mountd.service
index 90746a854b40..7ccc0f72012d 100644
--- a/systemd/nfs-mountd.service
+++ b/systemd/nfs-mountd.service
@@ -6,9 +6,10 @@ After=network.target
PartOf=nfs-server.service
PartOf=nfs-utils.service
+Wants=nfs-config.service
+After=nfs-config.service
+
[Service]
EnvironmentFile=-/run/sysconfig/nfs-utils
-ExecStartPre=-/usr/lib/systemd/scritps/nfs-utils_env.sh
-
Type=forking
ExecStart=/usr/sbin/rpc.mountd $RPCMOUNTDARGS
diff --git a/systemd/nfs-server.service b/systemd/nfs-server.service
index 5779fd39ed34..2fa7387e1cb9 100644
--- a/systemd/nfs-server.service
+++ b/systemd/nfs-server.service
@@ -10,9 +10,11 @@ After= nfs-idmapd.service rpc-statd.service
After= rpc-gssd.service rpc-svcgssd.service
Before= rpc-statd-notify.service
+Wants=nfs-config.service
+After=nfs-config.service
+
[Service]
EnvironmentFile=-/run/sysconfig/nfs-utils
-ExecStartPre=-/usr/lib/systemd/scritps/nfs-utils_env.sh
Type=oneshot
RemainAfterExit=yes
diff --git a/systemd/rpc-gssd.service b/systemd/rpc-gssd.service
index 375792804247..d4a381904de4 100644
--- a/systemd/rpc-gssd.service
+++ b/systemd/rpc-gssd.service
@@ -9,9 +9,11 @@ ConditionPathExists=/etc/krb5.keytab
PartOf=nfs-utils.service
+Wants=nfs-config.service
+After=nfs-config.service
+
[Service]
EnvironmentFile=-/run/sysconfig/nfs-utils
-ExecStartPre=-/usr/lib/systemd/scritps/nfs-utils_env.sh
Type=forking
ExecStart=/usr/sbin/rpc.gssd $GSSDARGS
diff --git a/systemd/rpc-statd-notify.service b/systemd/rpc-statd-notify.service
index 7742ac8c5d9a..6b13b323e758 100644
--- a/systemd/rpc-statd-notify.service
+++ b/systemd/rpc-statd-notify.service
@@ -9,10 +9,11 @@ After=nfs-server.service
PartOf=nfs-utils.service
+Wants=nfs-config.service
+After=nfs-config.service
+
[Service]
EnvironmentFile=-/run/sysconfig/nfs-utils
-ExecStartPre=/usr/lib/systemd/scritps/nfs-utils_env.sh
-
Type=oneshot
RemainAfterExit=yes
ExecStart=-/usr/sbin/sm-notify -d $SMNOTIFYARGS
diff --git a/systemd/rpc-statd.service b/systemd/rpc-statd.service
index 3f6cda16accd..c5795fd68f96 100644
--- a/systemd/rpc-statd.service
+++ b/systemd/rpc-statd.service
@@ -7,9 +7,10 @@ After=network.target nss-lookup.target rpcbind.target
PartOf=nfs-utils.service
+Wants=nfs-config.service
+After=nfs-config.service
+
[Service]
EnvironmentFile=-/run/sysconfig/nfs-utils
-ExecStartPre=-/usr/lib/systemd/scritps/nfs-utils_env.sh
-
Type=forking
ExecStart=/usr/sbin/rpc.statd --no-notify $STATDARGS
diff --git a/systemd/rpc-svcgssd.service b/systemd/rpc-svcgssd.service
index 6bd45884d991..32b786ec5c7d 100644
--- a/systemd/rpc-svcgssd.service
+++ b/systemd/rpc-svcgssd.service
@@ -10,9 +10,10 @@ ConditionPathExists=|!@localstatedir@/run/gssproxy.pid
ConditionPathExists=|!/proc/net/rpc/use-gss-proxy
ConditionPathExists=/etc/krb5.keytab
+Wants=nfs-config.service
+After=nfs-config.service
+
[Service]
EnvironmentFile=-/run/sysconfig/nfs-utils
-ExecStartPre=-/usr/lib/systemd/scritps/nfs-utils_env.sh
-
Type=forking
ExecStart=/usr/sbin/rpc.svcgssd $SVCGSSDARGS
next prev parent reply other threads:[~2014-02-20 6:56 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-20 6:55 [nfs-utils/systemd PATCH 0/6] Assorted fixes for systemd units Neil Brown
2014-02-20 6:55 ` [PATCH 3/6] systemd: add nfs-utils_env.sh for SUSE Neil Brown
2014-03-23 19:14 ` Steve Dickson
2014-03-23 23:45 ` NeilBrown
2014-02-20 6:55 ` [PATCH 5/6] systemd: nfs-client needs rpc-svcgssd too Neil Brown
2014-02-20 6:55 ` [PATCH 4/6] systemd: remove @localstatedir@ marking Neil Brown
2014-02-20 6:55 ` Neil Brown [this message]
2014-03-22 21:24 ` [PATCH 2/6] systemd units: create nfs-config.service as single location to process config Steve Dickson
2014-03-24 0:00 ` NeilBrown
2014-03-24 10:45 ` Steve Dickson
2014-02-20 6:55 ` [PATCH 6/6] systemd: add PIDFile directives where appropriate Neil Brown
2014-02-20 6:55 ` [PATCH 1/6] systemd units: remove reference to nfs-server.target from nfs-server.service Neil Brown
2014-03-24 13:37 ` [nfs-utils/systemd PATCH 0/6] Assorted fixes for systemd units Steve Dickson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140220065530.7320.61569.stgit@notabene.brown \
--to=neilb@suse.de \
--cc=SteveD@redhat.com \
--cc=linux-nfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.