This is slightly complicated by the fact that rpc-statd.service (and the related rpc-statd-notify.service) don't have an [Install] and are not enabled/disabled separately, but instead are pulled in by nfs-server.service through an explicit Wants=.
This is perhaps worth a discussion with upstream: If statd isn't necessary with NFS v4, perhaps some other service (like nfs-mountd?) could check whether it needs statd and start it if needed? If it's not (reliably) possible to detect the need for it at runtime, we could also mimic the current /etc/defaults/ behaviour by dropping the Wants= from nfs-server.service, and either:
- add a new ExecStartPre=/bin/sh -c ... which checks the value in the default file and calls "systemctl --no-block start rpc-statd.service rpc-statd-notify.service" if enabled
or
- do an one-time migration to adding nfs-server.wants/ symlinks for rpc-statd.service and rpc-statd-notify.service iff statd is enabled. That's much harder to discover than a simple systemctl enable/disable, though.
This is slightly complicated by the fact that rpc-statd.service (and the related rpc-statd- notify. service) don't have an [Install] and are not enabled/disabled separately, but instead are pulled in by nfs-server.service through an explicit Wants=.
This is perhaps worth a discussion with upstream: If statd isn't necessary with NFS v4, perhaps some other service (like nfs-mountd?) could check whether it needs statd and start it if needed? If it's not (reliably) possible to detect the need for it at runtime, we could also mimic the current /etc/defaults/ behaviour by dropping the Wants= from nfs-server.service, and either:
- add a new ExecStartPre= /bin/sh -c ... which checks the value in the default file and calls "systemctl --no-block start rpc-statd.service rpc-statd- notify. service" if enabled
or
- do an one-time migration to adding nfs-server.wants/ symlinks for rpc-statd.service and rpc-statd- notify. service iff statd is enabled. That's much harder to discover than a simple systemctl enable/disable, though.