On Wed, Jul 20, 2016 at 10:51 PM, Adam Carter <adamcart...@gmail.com> wrote:
>> I don't use systemd on Gentoo but for the nfs-utils upstream-shipped >> systemd units that I think that Gentoo's using, you have to re-run >> nfs-config.service - or run the script that it calls - in order to >> update the "/run/sysconfig/nfs-utils" environment file that's sourced >> by the nfs-server.service unit. > > In /usr/lib/systemd/system/nfs-server.service > [Service] > EnvironmentFile=/etc/conf.d/nfs Sorry. Looking at the ebuild, there's: <begin> rm "${D}$(systemd_get_unitdir)"/nfs-config.service || die sed -i -r \ -e "/^EnvironmentFile=/s:=.*:=${EPREFIX}/etc/conf.d/nfs:" \ -e '/^(After|Wants)=nfs-config.service$/d' \ -e 's:/usr/sbin/rpc.statd:/sbin/rpc.statd:' \ "${D}$(systemd_get_unitdir)"/* || die </end> so the upstream "nfs-config.service" waltz is avoided. But that means that the variables in "/etc/conf.d/nfs" aren't renamed. So the openrc nfs script uses "${OPTS_RPC_NFSD}", which is defined, and the systemd service uses "$RPCNFSDARGS", which isn't. >> Does "/var/lib/nfs/v4recovery/" exist? > > No > # ls /var/lib/nfs/ > etab export-lock rmtab rpc_pipefs sm sm.bak state xtab IIRC, it's needed to avoid this delay. I thought that I'd saved a url about this but I can't find it. Do you have a syslog message about "stable storage"? "man nfsdcltrack". The openrc script has <begin> mkdir_nfsdirs() { local d for d in v4recovery v4root ; do d="/var/lib/nfs/${d}" [ ! -d "${d}" ] && mkdir -p "${d}" done } </end> but systemd doesn't have anything equivalent. On RHEL and Ubuntu, "/var/lib/nfs/v4recovery/" is created at installation time. Perhaps the Gentoo ebuild should do the same or should ship a "/usr/lib/tmpfiles.d/var-lib-nfs.conf" to create it at boot if it doesn't exist.