diff options
author | Simo Sorce <simo@redhat.com> | 2014-09-30 15:33:10 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2014-09-30 15:33:10 -0400 |
commit | 8d51c77c81f0cd5b0b8508eb50d5a53d6d2375ae (patch) | |
tree | d44914cba725df723a59ff47e397aae1c6647531 | |
parent | 12a95edae598ba0c63a30b07d7b3529871e145e2 (diff) | |
download | nfs-utils-8d51c77c81f0cd5b0b8508eb50d5a53d6d2375ae.tar.gz nfs-utils-8d51c77c81f0cd5b0b8508eb50d5a53d6d2375ae.tar.xz nfs-utils-8d51c77c81f0cd5b0b8508eb50d5a53d6d2375ae.zip |
Centralize dependencies on the auth unit.
With this patch either gssproxy or rpc.svcgssd are started only if the
auth module is requested, and it finds a keytab.
If the wants are in the main nfs-client or nfs-server unit files then
the two deamons are started unconditionally and would require
conditions which we can test once and for all in a single unit file
instead.
Change also Before and After statments accordingly to properly
serialize loading modules and starting daemons in 3 steps
1. load kernel GSS auth module
2. start GSS handling daemons
3. start NFS client/server daemons
Signed-off-by: Simo Sorce <simo@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
-rw-r--r-- | systemd/auth-rpcgss-module.service | 3 | ||||
-rw-r--r-- | systemd/nfs-client.target | 7 | ||||
-rw-r--r-- | systemd/nfs-server.service | 8 |
3 files changed, 12 insertions, 6 deletions
diff --git a/systemd/auth-rpcgss-module.service b/systemd/auth-rpcgss-module.service index 3fc2f4a..0355e13 100644 --- a/systemd/auth-rpcgss-module.service +++ b/systemd/auth-rpcgss-module.service @@ -6,7 +6,8 @@ # unit will fail. But that's OK.) [Unit] Description=Kernel Module supporting RPCSEC_GSS -Before=gssproxy.service rpc-svcgssd.service +Before=gssproxy.service rpc-svcgssd.service rpc-gssd.service +Wants=gssproxy.service rpc-svcgssd.service rpc-gssd.service ConditionPathExists=/etc/krb5.keytab [Service] diff --git a/systemd/nfs-client.target b/systemd/nfs-client.target index 87a1ce8..9b792a3 100644 --- a/systemd/nfs-client.target +++ b/systemd/nfs-client.target @@ -5,9 +5,12 @@ Wants=remote-fs-pre.target # Note: we don't "Wants=rpc-statd.service" as "mount.nfs" will arrange to # start that on demand if needed. -Wants=rpc-gssd.service rpc-svcgssd.service auth-rpcgss-module.service Wants=nfs-blkmap.service rpc-statd-notify.service -After=rpc-gssd.service rpc-svcgssd.service nfs-blkmap.service +After=nfs-blkmap.service + +# GSS services dependencies and ordering +Wants=auth-rpcgss-module.service +After=rpc-gssd.service rpc-svcgssd.service gssproxy.service [Install] WantedBy=multi-user.target diff --git a/systemd/nfs-server.service b/systemd/nfs-server.service index 1048c5c..8010aad 100644 --- a/systemd/nfs-server.service +++ b/systemd/nfs-server.service @@ -2,15 +2,17 @@ Description=NFS server and services Requires= network.target proc-fs-nfsd.mount rpcbind.target Requires= nfs-mountd.service -Wants=rpc-statd.service nfs-idmapd.service auth-rpcgss-module.service -Wants=rpc-gssd.service gssproxy.service rpc-svcgssd.service +Wants=rpc-statd.service nfs-idmapd.service Wants=rpc-statd-notify.service After= network.target proc-fs-nfsd.mount rpcbind.target nfs-mountd.service After= nfs-idmapd.service rpc-statd.service -After= rpc-gssd.service gssproxy.service rpc-svcgssd.service Before= rpc-statd-notify.service +# GSS services dependencies and ordering +Wants=auth-rpcgss-module.service +After=rpc-gssd.service gssproxy.service rpc-svcgssd.service + Wants=nfs-config.service After=nfs-config.service |