Hello Stephen,
I was able to resolve this by following these steps (after doing strace nfsdcltrack init to find out why it returned -13) [1]
# mkdir /var/lib/nfs/nfsdcltrack
# nfsdcltrack init
/var/lib/nfs/nfsdcltrack/main.sqlite
is presentsqlite /var/lib/nfs/nfsdcltrack/main.sqlite
.tables
gives clients
and parameters
.schema clients
gives CREATE TABLE clients (id BLOB PRIMARY KEY, time INTEGER, has_session INTEGER);
.schema parameters
gives CREATE TABLE parameters (key TEXT PRIMARY KEY, value TEXT);
# systemctl restart nfs-server
Your journalctl
should show success message.
[1] strace output (clipped)
lstat64("/var/lib/nfs/nfsdcltrack/main.sqlite", 0xbfcab32c) = -1 ENOENT (No such file or directory)
getpid() = 4266
getpid() = 4266
stat64("/var/lib/nfs/nfsdcltrack/main.sqlite", 0xbfcaaf18) = -1 ENOENT (No such file or directory)
open("/var/lib/nfs/nfsdcltrack/main.sqlite", O_RDWR|O_CREAT|O_LARGEFILE|O_CLOEXEC, 0644) = -1 EACCES (Permission denied)
open("/var/lib/nfs/nfsdcltrack/main.sqlite", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
mkdir("/var/lib/nfs/nfsdcltrack", 0700) = -1 EEXIST (File exists)
stat64("/var/lib/nfs/nfsdcltrack", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
lstat64("/var/lib/nfs/nfsdcltrack/main.sqlite", 0xbfcab32c) = -1 ENOENT (No such file or directory)
getpid() = 4266
stat64("/var/lib/nfs/nfsdcltrack/main.sqlite", 0xbfcaaf18) = -1 ENOENT (No such file or directory)
open("/var/lib/nfs/nfsdcltrack/main.sqlite", O_RDWR|O_CREAT|O_LARGEFILE|O_CLOEXEC, 0644) = -1 EACCES (Permission denied)
open("/var/lib/nfs/nfsdcltrack/main.sqlite", O_RDONLY|O_LARGEFILE|O_CLOEXEC) = -1 ENOENT (No such file or directory)
Cheers,
Hieu