[nfs-utils/f12/master] nfs-utils init scripts don't support "try-restart" option (bz 521844) nfslock service doesn't suppor
Steve Dickson
steved at fedoraproject.org
Mon Oct 18 13:11:39 UTC 2010
commit 02c54cc391063c5817c30533fd7cc0a90066d611
Author: Steve Dickson <steved at redhat.com>
Date: Mon Oct 18 09:10:46 2010 -0400
nfs-utils init scripts don't support "try-restart" option (bz 521844)
nfslock service doesn't support "reload" option (bz 521852)
nfs init scripts return wrong exit codes (bz 521675)
Signed-off-by: Steve Dickson <steved at redhat.com>
nfs-utils.spec | 7 ++++++-
nfs.init | 49 +++++++++++++++++++++++++++++++++----------------
nfslock.init | 29 ++++++++++++++++++-----------
rpcgssd.init | 23 +++++++++++++++--------
rpcidmapd.init | 17 ++++++++++++-----
rpcsvcgssd.init | 22 ++++++++++++++--------
6 files changed, 98 insertions(+), 49 deletions(-)
---
diff --git a/nfs-utils.spec b/nfs-utils.spec
index 668995f..967ded8 100644
--- a/nfs-utils.spec
+++ b/nfs-utils.spec
@@ -2,7 +2,7 @@ Summary: NFS utilities and supporting clients and daemons for the kernel NFS ser
Name: nfs-utils
URL: http://sourceforge.net/projects/nfs
Version: 1.2.1
-Release: 5%{?dist}
+Release: 6%{?dist}
Epoch: 1
# group all 32bit related archs
@@ -256,6 +256,11 @@ fi
%attr(4755,root,root) /sbin/umount.nfs4
%changelog
+* Mon Oct 18 2010 Steve Dickson <steved at redhat.com> 1.2.1-6
+- nfs-utils init scripts don't support "try-restart" option (bz 521844)
+- nfslock service doesn't support "reload" option (bz 521852)
+- nfs init scripts return wrong exit codes (bz 521675)
+
* Thu Feb 4 2010 Steve Dickson <steved at redhat.com> 1.2.1-5
- Updated mount.nfs and mountd to work with 2.6.33 kernels.
diff --git a/nfs.init b/nfs.init
index 6e9d691..5be95f4 100755
--- a/nfs.init
+++ b/nfs.init
@@ -12,7 +12,7 @@
### BEGIN INIT INFO
# Provides: nfs
-# Required-Start: $local_fs $network $syslog
+# Required-Start: $local_fs $network $syslog $portmap
# Required-Stop: $local_fs $network $syslog
# Default-Stop: 0 1 6
# Short-Description: Start up the NFS server sevice
@@ -35,6 +35,7 @@
[ -z "$RQUOTAD" ] && RQUOTAD=`type -path rpc.rquotad`
RETVAL=0
+uid=`id | cut -d\( -f1 | cut -d= -f2`
# See how we were called.
case "$1" in
@@ -52,6 +53,9 @@ case "$1" in
exit 0
fi
+ # Only root can start the service
+ [ $uid -ne 0 ] && exit 4
+
# Don't fail if /etc/exports doesn't exist; create a bare-bones
# version and continue.
[ -r /etc/exports ] || \
@@ -119,24 +123,32 @@ case "$1" in
daemon rpc.mountd $RPCMOUNTDOPTS
RETVAL=$?
echo
- touch /var/lock/subsys/nfs
+ touch /var/lock/subsys/rpc.mountd
+ touch /var/lock/subsys/nfsd
# Let rpc.idmapd know that rpc.mountd just started
[ -x /usr/sbin/rpc.idmapd ] && /sbin/service rpcidmapd condstart
;;
stop)
+ # Only root can stop the service
+ [ $uid -ne 0 ] && exit 4
+
# Stop daemons.
echo -n $"Shutting down NFS mountd: "
killproc rpc.mountd
+ RETVAL=$?
echo
echo -n $"Shutting down NFS daemon: "
killproc nfsd -2
+ rval=$?
+ [ $RETVAL -eq 0 ] && RETVAL=$rval
echo
if [ -n "$RQUOTAD" -a "$RQUOTAD" != "no" ]; then
echo -n $"Shutting down NFS quotas: "
killproc rpc.rquotad
- RETVAL=$?
+ rval=$?
+ [ $RETVAL -eq 0 ] && RETVAL=$rval
echo
fi
# Reset the lockd ports if they were set
@@ -151,31 +163,36 @@ case "$1" in
cnt=`/usr/sbin/exportfs -v | /usr/bin/wc -l`
if [ $cnt -gt 0 ]; then
action $"Shutting down NFS services: " /usr/sbin/exportfs -au
- else
- action $"Shutting down NFS services: " /bin/false
+ rval=$?
+ [ $RETVAL -eq 0 ] && RETVAL=$rval
fi
[ -x /usr/sbin/rpc.svcgssd ] && /sbin/service rpcsvcgssd stop
- rm -f /var/lock/subsys/nfs
+ rm -f /var/lock/subsys/nfsd
+ rm -f /var/lock/subsys/rpc.mountd
;;
status)
[ -x /usr/sbin/rpc.svcgssd ] && /sbin/service rpcsvcgssd status
status rpc.mountd
+ RETVAL=$?
status nfsd
+ rval=$?
+ [ $RETVAL -eq 0 ] && RETVAL=$rval
if [ -n "$RQUOTAD" -a "$RQUOTAD" != "no" ]; then
status rpc.rquotad
+ rval=$?
+ [ $RETVAL -eq 0 ] && RETVAL=$rval
fi
- RETVAL=$?
;;
restart)
$0 stop
$0 start
;;
- reload)
+ reload | force-reload)
/usr/sbin/exportfs -r
- touch /var/lock/subsys/nfs
+ touch /var/lock/subsys/nfsd
;;
probe)
- if [ ! -f /var/lock/subsys/nfs ] ; then
+ if [ ! -f /var/lock/subsys/nfsd ] ; then
echo $"start"; exit 0
fi
/sbin/pidof rpc.mountd >/dev/null 2>&1; MOUNTD="$?"
@@ -183,13 +200,13 @@ case "$1" in
if [ $MOUNTD = 1 -o $NFSD = 1 ] ; then
echo $"restart"; exit 0
fi
- if [ /etc/exports -nt /var/lock/subsys/nfs ] ; then
+ if [ /etc/exports -nt /var/lock/subsys/nfsd ] ; then
echo $"reload"; exit 0
fi
;;
- condrestart)
+ condrestart | try-restart)
[ -x /usr/sbin/rpc.svcgssd ] && /sbin/service rpcsvcgssd condrestart
- [ -f /var/lock/subsys/nfs ] && {
+ [ -f /var/lock/subsys/nfsd ] && {
$0 stop
$0 start
RETVAL=$?
@@ -197,14 +214,14 @@ case "$1" in
;;
condstop)
[ -x /usr/sbin/rpc.svcgssd ] && /sbin/service rpcsvcgssd condstop
- [ -f /var/lock/subsys/nfs ] && {
+ [ -f /var/lock/subsys/nfsd ] && {
$0 stop
RETVAL=$?
}
;;
*)
- echo $"Usage: nfs {start|stop|status|restart|reload|condrestart|condstop}"
- RETVAL=3
+ echo $"Usage: nfs {start|stop|status|restart|reload|force-reload|condrestart|try-restart|condstop}"
+ RETVAL=2
;;
esac
diff --git a/nfslock.init b/nfslock.init
index 71a9940..e914f1e 100755
--- a/nfslock.init
+++ b/nfslock.init
@@ -11,7 +11,7 @@
### BEGIN INIT INFO
# Provides: nfslock
-# Required-Start: $network $syslog
+# Required-Start: $network $syslog $portmap
# Required-Stop: $network $syslog
# Default-Start: 3 4 5
# Default-Stop: 0 1 6
@@ -36,6 +36,7 @@ STATDARG=""
[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network
+uid=`id | cut -d\( -f1 | cut -d= -f2`
RETVAL=0
start() {
# Check that networking is up.
@@ -43,11 +44,14 @@ start() {
[ -x /sbin/rpc.statd ] || exit 5
+ # Only root can start the service
+ [ $uid -ne 0 ] && exit 4
+
# Make sure the rpc.statd is not already running.
if status rpc.statd > /dev/null ; then
exit 0
fi
- rm -f /var/lock/subsys/nfslock
+ rm -f /var/lock/subsys/rpc.statd
# Make sure locks are recovered
rm -f /var/run/sm-notify.pid
@@ -79,11 +83,14 @@ start() {
daemon rpc.statd "$STATDARG"
RETVAL=$?
echo
- [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nfslock
+ [ $RETVAL -eq 0 ] && touch /var/lock/subsys/rpc.statd
return $RETVAL
}
stop() {
+ # Only root can stop the service
+ [ $uid -ne 0 ] && exit 4
+
# Stop daemons.
if [ -n "`pidofproc lockd`" ]; then
echo -n $"Stopping NFS locking: "
@@ -95,7 +102,7 @@ stop() {
killproc rpc.statd
RETVAL=$?
echo
- rm -f /var/lock/subsys/nfslock
+ rm -f /var/lock/subsys/rpc.statd
rm -f /var/run/sm-notify.pid
return $RETVAL
}
@@ -112,12 +119,12 @@ case "$1" in
status rpc.statd
RETVAL=$?
;;
- restart)
+ restart | force-reload | reload)
stop
start
;;
probe)
- if [ ! -f /var/lock/subsys/nfslock ] ; then
+ if [ ! -f /var/lock/subsys/rpc.statd ] ; then
echo $"start"; exit 0
fi
/sbin/pidof rpc.statd >/dev/null 2>&1
@@ -125,22 +132,22 @@ case "$1" in
echo $"restart"; exit 0
fi
;;
- condrestart)
- [ -f /var/lock/subsys/nfslock ] && {
+ condrestart | try-restart)
+ [ -f /var/lock/subsys/rpc.statd ] && {
stop
start
RETVAL=$?
}
;;
condstop)
- [ -f /var/lock/subsys/nfslock ] && {
+ [ -f /var/lock/subsys/rpc.statd ] && {
stop
RETVAL=$?
}
;;
*)
- echo $"Usage: $0 {start|stop|status|restart|probe|condrestart|condstop}"
- RETVAL=3
+ echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|probe|condrestart|try-restart|condstop}"
+ RETVAL=2
;;
esac
diff --git a/rpcgssd.init b/rpcgssd.init
index 1b548a9..29b4954 100755
--- a/rpcgssd.init
+++ b/rpcgssd.init
@@ -27,19 +27,20 @@
# Check for and source configuration file otherwise set defaults
[ -f /etc/sysconfig/nfs ] && . /etc/sysconfig/nfs
-# See if we are configured to start
-[ "${SECURE_NFS}" != "yes" ] && exit 6
-
# Try to use machine credentials by default
RETVAL=0
-LOCKFILE=/var/lock/subsys/rpcgssd
+uid=`id | cut -d\( -f1 | cut -d= -f2`
+
prog="rpc.gssd"
+LOCKFILE=/var/lock/subsys/$prog
case "$1" in
start|condstart)
# Check that networking is up.
[ "${NETWORKING}" != "yes" ] && exit 6
[ ! -x /usr/sbin/rpc.gssd ] && exit 5
+ # Only root can start the service
+ [ $uid -ne 0 ] && exit 4
# Make sure the daemon is not already running.
if status $prog > /dev/null ; then
@@ -94,6 +95,12 @@ case "$1" in
[ $RETVAL -eq 0 ] && touch $LOCKFILE
;;
stop)
+ # Just exit if not configured
+ [ "${SECURE_NFS}" != "yes" ] && exit 6
+
+ # Only root can stop the service
+ [ $uid -ne 0 ] && exit 4
+
# Stop daemon.
echo -n $"Stopping RPC gssd: "
killproc $prog
@@ -105,12 +112,12 @@ case "$1" in
status rpc.gssd
RETVAL=$?
;;
- restart|reload)
+ restart|reload|force-reload)
$0 stop
$0 start
RETVAL=$?
;;
- condrestart)
+ condrestart|try-restart)
if [ -f $LOCKFILE ]; then
$0 restart
RETVAL=$?
@@ -123,8 +130,8 @@ case "$1" in
fi
;;
*)
- echo $"Usage: $0 {start|stop|restart|condstart|condrestart|status|condstop}"
- RETVAL=3
+ echo $"Usage: $0 {start|stop|restart|force-reload|condstart|condrestart|try-restart|status|condstop}"
+ RETVAL=2
;;
esac
diff --git a/rpcidmapd.init b/rpcidmapd.init
index c944454..0ce1507 100755
--- a/rpcidmapd.init
+++ b/rpcidmapd.init
@@ -28,8 +28,9 @@
[ -f /etc/sysconfig/nfs ] && . /etc/sysconfig/nfs
RETVAL=0
-LOCKFILE=/var/lock/subsys/rpcidmapd
prog="rpc.idmapd"
+LOCKFILE=/var/lock/subsys/$prog
+uid=`id | cut -d\( -f1 | cut -d= -f2`
case "$1" in
start|condstart)
@@ -38,6 +39,9 @@ case "$1" in
[ ! -x /usr/sbin/rpc.idmapd ] && exit 5
+ # Only root can start the service
+ [ $uid -ne 0 ] && exit 4
+
# Make sure the daemon is not already running.
[ "$1" = "condstart" -a -n "`pidofproc $prog`" ] && {
killproc $prog "-SIGHUP" > /dev/null
@@ -78,6 +82,9 @@ case "$1" in
[ $RETVAL -eq 0 ] && touch $LOCKFILE
;;
stop)
+ # Only root can stop the service
+ [ $uid -ne 0 ] && exit 4
+
# Stop daemon.
echo -n $"Stopping RPC idmapd: "
killproc $prog
@@ -89,12 +96,12 @@ case "$1" in
status rpc.idmapd
RETVAL=$?
;;
- restart|reload)
+ restart|reload|force-reload)
$0 stop
$0 start
RETVAL=$?
;;
- condrestart)
+ condrestart|try-restart)
if [ -f $LOCKFILE ]; then
$0 restart
RETVAL=$?
@@ -107,8 +114,8 @@ case "$1" in
fi
;;
*)
- echo $"Usage: $0 {start|stop|restart|condstart|condrestart|status|condstop}"
- RETVAL=3
+ echo $"Usage: $0 {start|stop|restart|force-reload|condstart|condrestart|try-restart|status|condstop}"
+ RETVAL=2
;;
esac
diff --git a/rpcsvcgssd.init b/rpcsvcgssd.init
index 6f5659d..5f99b86 100755
--- a/rpcsvcgssd.init
+++ b/rpcsvcgssd.init
@@ -26,12 +26,10 @@
# Check for and source configuration file otherwise set defaults
[ -f /etc/sysconfig/nfs ] && . /etc/sysconfig/nfs
-# See if we are configured to start
-[ "${SECURE_NFS}" != "yes" ] && exit 6
-
RETVAL=0
-LOCKFILE=/var/lock/subsys/rpcsvcgssd
prog="rpc.svcgssd"
+LOCKFILE=/var/lock/subsys/$prog
+uid=`id | cut -d\( -f1 | cut -d= -f2`
case "$1" in
start|condstart)
@@ -39,6 +37,8 @@ case "$1" in
[ "${NETWORKING}" != "yes" ] && exit 6
[ "${SECURE_NFS}" != "yes" ] && exit 6
[ ! -x /usr/sbin/rpc.svcgssd ] && exit 5
+ # Only root can start the service
+ [ $uid -ne 0 ] && exit 4
# Make sure the daemon is not already running.
if status $prog > /dev/null ; then
@@ -91,6 +91,12 @@ case "$1" in
[ $RETVAL -eq 0 ] && touch $LOCKFILE
;;
stop)
+ # Just exit if not configured
+ [ "${SECURE_NFS}" != "yes" ] && exit 6
+
+ # Only root can stop the service
+ [ $uid -ne 0 ] && exit 4
+
# Stop daemon.
echo -n $"Shutting down RPC svcgssd: "
killproc $prog
@@ -102,12 +108,12 @@ case "$1" in
status rpc.svcgssd
RETVAL=$?
;;
- restart|reload)
+ restart|reload|force-reload)
$0 stop
$0 start
RETVAL=$?
;;
- condrestart)
+ condrestart|try-restart)
if [ -f $LOCKFILE ]; then
$0 restart
RETVAL=$?
@@ -120,8 +126,8 @@ case "$1" in
fi
;;
*)
- echo $"Usage: $0 {start|stop|restart|condstart|condrestart|status|condstop}"
- RETVAL=3
+ echo $"Usage: $0 {start|stop|restart|force-reload|condstart|condrestart|try-restart|status|condstop}"
+ RETVAL=2
;;
esac
More information about the scm-commits
mailing list