| |
| Notes about systemd unit files for nfs-utils. |
| |
| The unit files provided here should be sufficient for systemd |
| to manage all daemons and related services provides by nfs-utils. |
| |
| They do *not* include any unit files for separate services such as |
| rpc.rquotad (in the 'quota' package) or rpcbind. |
| |
| There are 4 units that can be 'enabled' or 'disabled' by systemctl, or |
| by a suitable 'preset' setting: |
| |
| nfs-server.service |
| If enabled, nfs service is started together with dependencies |
| such as mountd, statd, rpc.idmapd |
| This is a "service" file rather than a "target" (which is the |
| normal grouping construct) so that |
| systemctl start nfs-server |
| can work (if no type is given, ".service" is assumed). |
| |
| nfs-client.target |
| If enabled, daemons needed for an nfs client are enabled. |
| This does *not* include rpc.statd. The rpc-statd.service unit |
| is started by /usr/sbin/start-statd which mount.nfs will run |
| if statd is needed. |
| |
| nfs-blkmap.service |
| If enabled, then blkmapd will be run when nfs-client.target is |
| started. |
| |
| Another special unit is "nfs-utils.service". This doesn't really do |
| anything, but exists so that other units may declare themselves as |
| "PartOf" nfs-utils.service. |
| The effect of this is that |
| systemctl restart nfs-utils |
| will restart all nfs-utils daemons as maybe be required during |
| software update. It isn't possible to make |
| systemctl try-restart nfs-server nfs-client.target |
| do this as some daemon are included in both, and rpc.statd would |
| not be restarted if nfs-server were not active (as nfs-client doesn't |
| Want it - it is started by mount.nfs running start-statd). |
| |
| It is possible that we should have an nfs-statd.target which can |
| selectively enable statd being stared by -server and sm-notify |
| being started by -server or -client. That way it could be disabled |
| completely on V4-only configurations. Currently statd is always |
| started on the server and sm-notify is always run if server or |
| client is enabled. |
| |
| Stopping nfs-server will also stop rpc.mountd, and rpc.svcgssd. |
| It cannot stop rpc.statd or rpc.gssd as they may be in use by the |
| client and systemd cannot specify is two-pronged reverse dependency. |
| (i.e. stop this unit if none of these units are running) |
| |
| Distro specific configuration can be included in /etc/nfs.conf, or |
| by providing drop-in files which replace the ExecStart line for a given |
| service, and possibly add an EnvironmentFile line. |
| |
| For example, if systemd/system/nfs-mountd.service.d/local.conf |
| contained |
| [Service] |
| EnvironmentFile=/etc/sysconfig/nfs |
| ExecStart= |
| ExecStart=/usr/sbin/rpc.mountd $RPCMOUNTDOPTS |
| |
| then the setting of RPCMOUNTDOPTS in /etc/sysconfig/nfs would be |
| passed to rpc.mountd. |
| |
| rpc.gssd and rpc.svcgssd are assumed to be needed if /etc/krb5.keytab |
| is present. |
| If a site needs this file present but does not want the gss daemons |
| running, it should create |
| /etc/systemd/system/rpc-gssd.service.d/01-disable.conf |
| and |
| /etc/systemd/system/rpc-svcgssd.service.d/01-disable.conf |
| |
| containing |
| [Unit] |
| ConditionNull=false |