diff options
-rw-r--r-- | recipes/nfs-utils/nfs-utils-1.1.2/nfsserver | 149 | ||||
-rw-r--r-- | recipes/nfs-utils/nfs-utils_1.1.2.bb | 26 |
2 files changed, 153 insertions, 22 deletions
diff --git a/recipes/nfs-utils/nfs-utils-1.1.2/nfsserver b/recipes/nfs-utils/nfs-utils-1.1.2/nfsserver new file mode 100644 index 0000000000..b4c7662ce0 --- /dev/null +++ b/recipes/nfs-utils/nfs-utils-1.1.2/nfsserver @@ -0,0 +1,149 @@ +#!/bin/sh +# +# Startup script for nfs-utils +# +# +# The environment variable NFS_SERVERS may be set in /etc/default/nfsd +# Other control variables may be overridden here too +test -r /etc/default/nfsd && . /etc/default/nfsd +# +# Location of executables: +test -x "$NFS_MOUNTD" || NFS_MOUNTD=/usr/sbin/rpc.mountd +test -x "$NFS_NFSD" || NFS_NFSD=/usr/sbin/rpc.nfsd +test -x "$NFS_STATD" || NFS_STATD=/usr/sbin/rpc.statd +# +# The user mode program must also exist (it just starts the kernel +# threads using the kernel module code). +test -x "$NFS_MOUNTD" || exit 0 +test -x "$NFS_NFSD" || exit 0 +# +# Default is 8 threads, value is settable between 1 and the truely +# ridiculous 99 +test "$NFS_SERVERS" -gt 0 && test "$NFS_SERVERS" -lt 100 || NFS_SERVERS=8 +# +# The default state directory is /var/lib/nfs +test -n "$NFS_STATEDIR" || NFS_STATEDIR=/var/lib/nfs +# +#---------------------------------------------------------------------- +# Startup and shutdown functions. +# Actual startup/shutdown is at the end of this file. +#directories +create_directories(){ + echo -n 'creating NFS state directory: ' + mkdir -p "$NFS_STATEDIR" + ( cd "$NFS_STATEDIR" + umask 077 + mkdir -p sm sm.bak + test -w sm/state || { + rm -f sm/state + :>sm/state + } + umask 022 + for file in xtab etab smtab rmtab + do + test -w "$file" || { + rm -f "$file" + :>"$file" + } + done + ) + echo done +} +#mountd +start_mountd(){ + echo -n 'starting mountd: ' + start-stop-daemon --start --exec "$NFS_MOUNTD" -- "-f /etc/exports $@" + echo done +} +stop_mountd(){ + echo -n 'stopping mountd: ' + start-stop-daemon --stop --quiet --exec "$NFS_MOUNTD" + echo done +} +# +#nfsd +start_nfsd(){ + echo -n "starting $1 nfsd kernel threads: " + start-stop-daemon --start --exec "$NFS_NFSD" -- "$@" + echo done +} +delay_nfsd(){ + for delay in 0 1 2 3 4 5 6 7 8 9 + do + if pidof nfsd >/dev/null + then + echo -n . + sleep 1 + else + return 0 + fi + done + return 1 +} +stop_nfsd(){ + # WARNING: this kills any process with the executable + # name 'nfsd'. + echo -n 'stopping nfsd: ' + start-stop-daemon --stop --quiet --signal 1 --name nfsd + if delay_nfsd || { + echo failed + echo ' using signal 9: ' + start-stop-daemon --stop --quiet --signal 9 --name nfsd + delay_nfsd + } + then + echo done + # This will remove, recursively, dependencies + echo -n 'removing nfsd kernel module: ' + if modprobe -r nfsd + then + echo done + else + echo failed + fi + else + echo failed + fi +} + +#statd +start_statd(){ + echo -n "starting statd: " + start-stop-daemon --start --exec "$NFS_STATD" + echo done +} +stop_statd(){ + # WARNING: this kills any process with the executable + # name 'statd'. + echo -n 'stopping statd: ' + start-stop-daemon --stop --quiet --signal 1 --name statd + echo done +} +#---------------------------------------------------------------------- +# +# supported options: +# start +# stop +# reload: reloads the exports file +# restart: stops and starts mountd +#FIXME: need to create the /var/lib/nfs/... directories +case "$1" in +start) create_directories + start_nfsd "$NFS_SERVERS" + start_mountd + start_statd + test -r /etc/exports && exportfs -a;; +stop) exportfs -ua + stop_statd + stop_mountd + stop_nfsd;; +reload) test -r /etc/exports && exportfs -r;; +restart)exportfs -ua + stop_mountd + stop_statd + # restart does not restart the kernel threads, + # only the user mode processes + start_mountd + start_statd + test -r /etc/exports && exportfs -a;; +esac diff --git a/recipes/nfs-utils/nfs-utils_1.1.2.bb b/recipes/nfs-utils/nfs-utils_1.1.2.bb index cdd5d372cd..3951c46eff 100644 --- a/recipes/nfs-utils/nfs-utils_1.1.2.bb +++ b/recipes/nfs-utils/nfs-utils_1.1.2.bb @@ -3,7 +3,7 @@ PRIORITY = "optional" SECTION = "console/network" LICENSE = "GPL" -PR = "r6" +PR = "r7" DEPENDS = "e2fsprogs-libs tcp-wrappers libevent" @@ -44,30 +44,12 @@ do_ccompile() { INHIBIT_AUTO_STAGE = "1" -do_install() { +do_install_append() { install -d ${D}${sysconfdir}/init.d install -m 0755 ${WORKDIR}/nfsserver ${D}${sysconfdir}/init.d/nfsserver - install -d ${D}${sbindir} - install -d ${D}${base_sbindir} - install -m 0755 ${S}/utils/exportfs/exportfs ${D}${sbindir}/exportfs - install -m 0755 ${S}/utils/mountd/mountd ${D}${sbindir}/mountd - install -m 0755 ${S}/utils/mount/mount.nfs ${D}${base_sbindir}/mount.nfs - install -m 0755 ${S}/utils/nfsd/nfsd ${D}${sbindir}/nfsd - install -m 0755 ${S}/utils/nfsstat/nfsstat ${D}${sbindir}/nfsstat - install -m 0755 ${S}/utils/showmount/showmount ${D}${sbindir}/showmount - install -m 0755 ${S}/utils/statd/statd ${D}${sbindir}/statd - - ln -s ${base_sbindir}/mount.nfs ${D}/${base_sbindir}/mount.nfs4 - - install -d ${D}${mandir}/man8 - install -m 0644 ${S}/utils/exportfs/exportfs.man ${D}${mandir}/man8/exportfs.8 - install -m 0644 ${S}/utils/mountd/mountd.man ${D}${mandir}/man8/mountd.8 - install -m 0644 ${S}/utils/nfsd/nfsd.man ${D}${mandir}/man8/nfsd.8 - install -m 0644 ${S}/utils/nfsstat/nfsstat.man ${D}${mandir}/man8/nfsstat.8 - install -m 0644 ${S}/utils/showmount/showmount.man ${D}${mandir}/man8/showmount.8 - install -m 0644 ${S}/utils/statd/statd.man ${D}${mandir}/man8/statd.8 + rm ${D}${sbindir}/rpcdebug } PACKAGES =+ "nfs-utils-client" -FILES_nfs-utils-client = "${base_sbindir}/mount.nfs ${base_sbindir}/mount.nfs4" +FILES_nfs-utils-client = "${base_sbindir}/*mount.nfs*" |