As it turns out, I'd not subscribed to this bug so I didn't get comments after I posted mine. I had to refer back to my own comment to figure out the solution since my NFS server apparently broke earlier this week.
An update to nfs-common (I think that's the package that installs the service files) was pushed out and overwrote the "fix" I'd put in earlier.
A more complete fix (after some trial and error) was to create the "override.conf" files for nfs-server and nfs-mountd using:
sudo systemctl edit nfs-server (same for nfs-mountd).
I copy/pasted the baseline service definitions into the override files and added my own tweaks. With that, the override files I am currently running with are as follows (output from systemctl cat nfs-server and nfs-mountd):
-------
# /etc/systemd/system/nfs-server.service.d/override.conf
[Unit]
Description=NFS server and services
DefaultDependencies=no
Requires= network.target proc-fs-nfsd.mount
Requires= nfs-mountd.service
Wants=rpcbind.socket
Wants=nfs-idmapd.service
Note the addition of "rpcbind.service" on the "Wants" and "After" lines, as well as the "ExecStart=".
It took me a bit to figure out the "ExecStart=" directives were required. As I found out, the ExecStart directive is additive, so the "ExecStart=" directive is required to "clear out" the directive set in the baseline service files. (In other words, the baseline service file is read before override.conf is read).
This appears to work for me on Ubuntu 16.04.06. I am not in a position to verify these tweaks work on later versions of Ubuntu.
As it turns out, I'd not subscribed to this bug so I didn't get comments after I posted mine. I had to refer back to my own comment to figure out the solution since my NFS server apparently broke earlier this week.
An update to nfs-common (I think that's the package that installs the service files) was pushed out and overwrote the "fix" I'd put in earlier.
A more complete fix (after some trial and error) was to create the "override.conf" files for nfs-server and nfs-mountd using:
sudo systemctl edit nfs-server (same for nfs-mountd).
I copy/pasted the baseline service definitions into the override files and added my own tweaks. With that, the override files I am currently running with are as follows (output from systemctl cat nfs-server and nfs-mountd):
------- system/ nfs-server. service. d/override. conf cies=no socket idmapd. service
# /etc/systemd/
[Unit]
Description=NFS server and services
DefaultDependen
Requires= network.target proc-fs-nfsd.mount
Requires= nfs-mountd.service
Wants=rpcbind.
Wants=nfs-
After= local-fs.target notify. service
After= network.target proc-fs-nfsd.mount rpcbind.socket nfs-mountd.service
After= nfs-idmapd.service rpc-statd.service
Before= rpc-statd-
# GSS services dependencies and ordering rpcgss- module. service gssd.service rpc-svcgssd.service
Wants=auth-
After=rpc-
# start/stop server before/after client remote- fs-pre. target
Before=
Wants=nfs- config. service config. service
After=nfs-
BindsTo= rpcbind. service service
After=rpcbind.
[Service] =-/run/ sysconfig/ nfs-utils
EnvironmentFile
ExecStart= /usr/sbin/ exportfs -r /usr/sbin/ rpc.nfsd $RPCNFSDARGS /usr/sbin/ rpc.nfsd 0 /usr/sbin/ exportfs -au /usr/sbin/ exportfs -f
Type=oneshot
RemainAfterExit=yes
ExecStartPre=
ExecStart=
ExecStop=
ExecStopPost=
ExecStopPost=
ExecReload= /usr/sbin/ exportfs -r
[Install] multi-user. target
WantedBy=
------
Note the addition of: rpcbind. service rpcbind. service
BindsTo=
After=
ExecStart=
------ system/ nfs-mountd. service. d/override. conf cies=no proc-fs- nfsd.mount fs-nfsd. mount target local-fs.target socket nfs-server. service
# /etc/systemd/
[Unit]
Description=NFS Mount Daemon
DefaultDependen
Requires=
After=proc-
After=network.
After=rpcbind.
BindsTo=
Wants=nfs- config. service rpcbind.service config. service rpcbind.service
After=nfs-
[Service] =-/run/ sysconfig/ nfs-utils /usr/sbin/ rpc.mountd $RPCMOUNTDARGS
EnvironmentFile
Type=forking
ExecStart=
ExecStart=
------
Note the addition of "rpcbind.service" on the "Wants" and "After" lines, as well as the "ExecStart=".
It took me a bit to figure out the "ExecStart=" directives were required. As I found out, the ExecStart directive is additive, so the "ExecStart=" directive is required to "clear out" the directive set in the baseline service files. (In other words, the baseline service file is read before override.conf is read).
This appears to work for me on Ubuntu 16.04.06. I am not in a position to verify these tweaks work on later versions of Ubuntu.