summaryrefslogtreecommitdiffstats
path: root/utils/nfsd
diff options
context:
space:
mode:
authorhjl <hjl>1999-10-18 23:21:12 +0000
committerhjl <hjl>1999-10-18 23:21:12 +0000
commit8b7ad01b14df1e7529b9ba8a1ea17df0d6004ef9 (patch)
tree0904ef8554ed680fe3244fa618685e1fb7ea148b /utils/nfsd
downloadnfs-utils-8b7ad01b14df1e7529b9ba8a1ea17df0d6004ef9.tar.gz
nfs-utils-8b7ad01b14df1e7529b9ba8a1ea17df0d6004ef9.tar.xz
nfs-utils-8b7ad01b14df1e7529b9ba8a1ea17df0d6004ef9.zip
Initial revision
Diffstat (limited to 'utils/nfsd')
-rw-r--r--utils/nfsd/Makefile35
-rw-r--r--utils/nfsd/nfsd.c68
-rw-r--r--utils/nfsd/nfsd.man46
3 files changed, 149 insertions, 0 deletions
diff --git a/utils/nfsd/Makefile b/utils/nfsd/Makefile
new file mode 100644
index 0000000..4cc6f8a
--- /dev/null
+++ b/utils/nfsd/Makefile
@@ -0,0 +1,35 @@
+#
+# Makefile for knfsd
+#
+
+PROGRAM = nfsd
+PREFIX = rpc.
+OBJS = nfsd.o
+DEPLIBS = $(TOP)support/lib/libfs.a
+LIBS = -lnfs
+MAN8 = nfsd
+
+include $(TOP)rules.mk
+
+#
+# all:: nfsd
+# @echo "Done."
+#
+# nfsd: $(OBJS)
+# $(CC) $(LDFLAGS) -o $@ $(OBJS) -lnfs
+#
+# clean distclean::
+# rm -f *.o
+#
+# distclean::
+# rm -f nfsd .depend
+#
+# install::
+# install -o root -g root -m 755 nfsd /usr/sbin/rpc.$knfsd
+#
+# dep::
+# $(CC) $(CFLAGS) -M $(OBJS:.o=.c) > .depend
+#
+# ifeq (.depend,$(wildcard .depend))
+# include .depend
+# endif
diff --git a/utils/nfsd/nfsd.c b/utils/nfsd/nfsd.c
new file mode 100644
index 0000000..3a22370
--- /dev/null
+++ b/utils/nfsd/nfsd.c
@@ -0,0 +1,68 @@
+/*
+ * nfsd
+ *
+ * This is the user level part of nfsd. This is very primitive, because
+ * all the work is now done in the kernel module.
+ *
+ * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
+ */
+
+#include "config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include "nfslib.h"
+
+static void usage(const char *);
+
+int
+main(int argc, char **argv)
+{
+ int count = 1, c, error, port;
+
+ port = 2049;
+
+ /* FIXME: Check for nfs in /etc/services */
+
+ while ((c = getopt(argc, argv, "hp:P:")) != EOF) {
+ switch(c) {
+ case 'P': /* XXX for nfs-server compatibility */
+ case 'p':
+ port = atoi(optarg);
+ if (port <= 0 || port > 65535) {
+ fprintf(stderr, "%s: bad port number: %s\n",
+ argv[0], optarg);
+ usage(argv [0]);
+ }
+ break;
+ break;
+ case 'h':
+ default:
+ usage(argv[0]);
+ }
+ }
+
+ if (optind < argc) {
+ if ((count = atoi(argv[optind])) < 0) {
+ /* insane # of servers */
+ fprintf(stderr,
+ "%s: invalid server count (%d), using 1\n",
+ argv[0], count);
+ count = 1;
+ }
+ }
+
+ if ((error = nfssvc(port, count)) < 0)
+ perror("nfssvc");
+
+ return (error != 0);
+}
+
+static void
+usage(const char *prog)
+{
+ fprintf(stderr, "usage:\n"
+ "%s nrservs\n", prog);
+ exit(2);
+}
diff --git a/utils/nfsd/nfsd.man b/utils/nfsd/nfsd.man
new file mode 100644
index 0000000..f415cfd
--- /dev/null
+++ b/utils/nfsd/nfsd.man
@@ -0,0 +1,46 @@
+.\"
+.\" nfsd(8)
+.\"
+.\" Copyright (C) 1999 Olaf Kirch <okir@monad.swb.de>
+.TH rpc.nfsd 8 "31 May 1999"
+.SH NAME
+rpc.nfsd \- NFS server process
+.SH SYNOPSIS
+.BI "/usr/sbin/rpc.nfsd [-p " port "] " nproc
+.SH DESCRIPTION
+The
+.B rpc.nfsd
+program implements the user level part of the NFS service. The
+main functionality is handled by the
+.B nfsd.o
+kernel module; the user space program merely starts the specified
+number of kernel threads.
+.P
+The
+.B rpc.mountd
+server provides an ancially service needed to satisfy mount requests
+by NFS clients.
+.SH OPTIONS
+.TP
+.BI \-p " port"
+specify a diferent port to listen on for NFS requests. By default,
+.B rpc.nfsd
+will listen on port 2049.
+.TP
+.I nproc
+specify the number of NFS server threads. By default, just one
+thread is started. However, for optimum performance several threads
+should be used. The actual figure depends on the number of and the work
+load created by the NFS clients, but a useful starting point is
+8 threads. Effects of modifying that number can be checked using
+the
+.BR nfsstat (8)
+program.
+.SH SEE ALSO
+.BR rpc.mountd (8),
+.BR exportfs (8),
+.BR rpc.rquotad (8),
+.BR nfsstat (8).
+.SH AUTHOR
+Olaf Kirch, Bill Hawes, H. J. Lu, G. Allan Morris III,
+and a host of others.