Improved initscript
This commit is contained in:
parent
acd718da7e
commit
4ca34e74e6
289
ypbind.init
289
ypbind.init
@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#!/bin/sh
|
||||
#
|
||||
# ypbind: Starts the ypbind Daemon
|
||||
# ypbind: Starts the ypbind daemon
|
||||
#
|
||||
# Version: @(#) /etc/init.d/ypbind.init 1.3
|
||||
#
|
||||
@ -11,13 +11,18 @@
|
||||
# which are not using NIS.
|
||||
# processname: ypbind
|
||||
# config: /etc/yp.conf
|
||||
#
|
||||
# See https://fedoraproject.org/wiki/Packaging:SysVInitScript for
|
||||
# the guidelines document.
|
||||
|
||||
OTHER_YPBIND_OPTS=""
|
||||
|
||||
# Source function library.
|
||||
. /etc/init.d/functions
|
||||
[ -f /etc/rc.d/init.d/functions ] || exit 0
|
||||
. /etc/rc.d/init.d/functions
|
||||
|
||||
. /etc/sysconfig/network
|
||||
# getting the YP domain name
|
||||
[ -e /etc/sysconfig/network ] && . /etc/sysconfig/network
|
||||
|
||||
# Check for and source configuration file otherwise set defaults
|
||||
[ -f /etc/sysconfig/ypbind ] && . /etc/sysconfig/ypbind
|
||||
@ -29,161 +34,183 @@ OTHER_YPBIND_OPTS=""
|
||||
# Check that networking is configured.
|
||||
[ "${NETWORKING}" = "no" ] && exit 0
|
||||
|
||||
exec="/sbin/ypbind"
|
||||
prog="ypbind"
|
||||
lockfile=/var/lock/subsys/$prog
|
||||
|
||||
selinux_on() {
|
||||
[ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled || return
|
||||
#echo $"Turning on allow_ypbind SELinux boolean"
|
||||
setsebool allow_ypbind=1
|
||||
[ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled || return
|
||||
#echo $"Turning on allow_ypbind SELinux boolean"
|
||||
setsebool allow_ypbind=1
|
||||
}
|
||||
|
||||
selinux_off() {
|
||||
[ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled || return
|
||||
allow_ypbind=0
|
||||
. /etc/selinux/config
|
||||
if [ -e /etc/selinux/${SELINUXTYPE}/modules/active/booleans.local ]; then
|
||||
. /etc/selinux/${SELINUXTYPE}/modules/active/booleans.local
|
||||
fi
|
||||
if [ $allow_ypbind == 0 ]; then
|
||||
#echo $"Turning off allow_ypbind SELinux boolean"
|
||||
setsebool allow_ypbind=$allow_ypbind
|
||||
fi
|
||||
[ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled || return
|
||||
allow_ypbind=0
|
||||
. /etc/selinux/config
|
||||
if [ -e /etc/selinux/${SELINUXTYPE}/modules/active/booleans.local ]; then
|
||||
. /etc/selinux/${SELINUXTYPE}/modules/active/booleans.local
|
||||
fi
|
||||
if [ $allow_ypbind == 0 ]; then
|
||||
#echo $"Turning off allow_ypbind SELinux boolean"
|
||||
setsebool allow_ypbind=$allow_ypbind
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
DOMAINNAME=`domainname`
|
||||
if [ "$DOMAINNAME" = "(none)" -o "$DOMAINNAME" = "" ]; then
|
||||
echo -n $"Setting NIS domain: "
|
||||
if [ -n "$NISDOMAIN" ]; then
|
||||
action $"domain is '$NISDOMAIN' " domainname $NISDOMAIN
|
||||
else # See if the domain is set in config file
|
||||
NISDOMAIN=`grep "domain" /etc/yp.conf | grep -v ^# | \
|
||||
awk '{print $2}'`
|
||||
if [ -n "$NISDOMAIN" ]; then
|
||||
action $"domain is '$NISDOMAIN' " \
|
||||
domainname $NISDOMAIN
|
||||
else
|
||||
action $"domain not found" /bin/false
|
||||
logger -t ypbind $"domain not found"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
[ $UID -eq 0 ] || exit 4
|
||||
[ -x $exec ] || exit 5
|
||||
DOMAINNAME=`domainname`
|
||||
if [ "$DOMAINNAME" = "(none)" -o "$DOMAINNAME" = "" ]; then
|
||||
echo -n $"Setting NIS domain: "
|
||||
if [ -n "$NISDOMAIN" ]; then
|
||||
action $"domain is '$NISDOMAIN' " domainname $NISDOMAIN
|
||||
else # See if the domain is set in config file
|
||||
NISDOMAIN=`grep "domain" /etc/yp.conf | grep -v ^# | \
|
||||
awk '{print $2}'`
|
||||
if [ -n "$NISDOMAIN" ]; then
|
||||
action $"domain is '$NISDOMAIN' " \
|
||||
domainname $NISDOMAIN
|
||||
else
|
||||
action $"domain not found" /bin/false
|
||||
logger -t ypbind $"domain not found"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
echo -n $"Starting NIS service: "
|
||||
selinux_on
|
||||
daemon ypbind $OTHER_YPBIND_OPTS
|
||||
RETVAL=$?
|
||||
echo
|
||||
if [ $RETVAL -ne 0 ]; then
|
||||
#selinux_off
|
||||
logger -t ypbind "failed to start!"
|
||||
return $RETVAL
|
||||
fi
|
||||
echo -n $"Starting NIS service: "
|
||||
selinux_on
|
||||
daemon $exec $OTHER_YPBIND_OPTS
|
||||
retval=$?
|
||||
echo
|
||||
if [ $retval -ne 0 ]; then
|
||||
#selinux_off
|
||||
logger -t ypbind "failed to start!"
|
||||
return $retval
|
||||
fi
|
||||
echo -n $"Binding NIS service: "
|
||||
# the following fixes problems with the init scripts continuing
|
||||
# even when we are really not bound yet to a server, and then things
|
||||
# that need NIS fail.
|
||||
timeout=10
|
||||
firsttime=1
|
||||
SECONDS=0
|
||||
while [ $SECONDS -lt $timeout ]; do
|
||||
if /usr/sbin/rpcinfo -p | LC_ALL=C fgrep -q ypbind
|
||||
then
|
||||
if [ $firsttime -eq 1 ]; then
|
||||
# reset timeout
|
||||
timeout=$NISTIMEOUT
|
||||
firsttime=0
|
||||
fi
|
||||
/usr/bin/ypwhich > /dev/null 2>&1
|
||||
retval=$?
|
||||
if [ $retval -eq 0 ]; then
|
||||
break;
|
||||
fi
|
||||
fi
|
||||
echo -n $"Binding NIS service: "
|
||||
# the following fixes problems with the init scripts continuing
|
||||
# even when we are really not bound yet to a server, and then things
|
||||
# that need NIS fail.
|
||||
timeout=10
|
||||
firsttime=1
|
||||
SECONDS=0
|
||||
while [ $SECONDS -lt $timeout ]; do
|
||||
if /usr/sbin/rpcinfo -p | LC_ALL=C fgrep -q ypbind
|
||||
then
|
||||
if [ $firsttime -eq 1 ]; then
|
||||
# reset timeout
|
||||
timeout=$NISTIMEOUT
|
||||
firsttime=0
|
||||
fi
|
||||
/usr/bin/ypwhich > /dev/null 2>&1
|
||||
RETVAL=$?
|
||||
if [ $RETVAL -eq 0 ]; then
|
||||
break;
|
||||
fi
|
||||
fi
|
||||
sleep 2
|
||||
echo -n "."
|
||||
done
|
||||
if [ $RETVAL -eq 0 ]; then
|
||||
logger -t ypbind \
|
||||
"NIS domain: `domainname`, NIS server: `ypwhich 2> /dev/null`"
|
||||
touch /var/lock/subsys/ypbind
|
||||
success
|
||||
else
|
||||
logger -t ypbind \
|
||||
"NIS server for domain `domainname` is not responding."
|
||||
failure
|
||||
#selinux_off
|
||||
RETVAL=100
|
||||
fi
|
||||
echo
|
||||
return $RETVAL
|
||||
sleep 2
|
||||
echo -n "."
|
||||
done
|
||||
if [ $retval -eq 0 ]; then
|
||||
logger -t ypbind \
|
||||
"NIS domain: `domainname`, NIS server: `ypwhich 2> /dev/null`"
|
||||
touch $lockfile
|
||||
success
|
||||
else
|
||||
logger -t ypbind \
|
||||
"NIS server for domain `domainname` is not responding."
|
||||
failure
|
||||
#selinux_off
|
||||
retval=100
|
||||
fi
|
||||
echo
|
||||
return $retval
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo -n $"Shutting down NIS service: "
|
||||
killproc ypbind
|
||||
RETVAL=$?
|
||||
if [ $RETVAL -eq 0 ]; then
|
||||
rm -f /var/lock/subsys/ypbind
|
||||
# if we used brute force (like kill -9) we don't want those around
|
||||
if [ x$(domainname) != x ]; then
|
||||
rm -f /var/yp/binding/$(domainname)*
|
||||
fi
|
||||
[ $UID -eq 0 ] || exit 4
|
||||
[ -x $exec ] || exit 5
|
||||
echo -n $"Shutting down NIS service: "
|
||||
killproc $prog
|
||||
retval=$?
|
||||
echo
|
||||
if [ $retval -eq 0 ]; then
|
||||
rm -f $lockfile
|
||||
# if we used brute force (like kill -9) we don't want those around
|
||||
if [ x$(domainname) != x ]; then
|
||||
rm -f /var/yp/binding/$(domainname)*
|
||||
fi
|
||||
echo
|
||||
#selinux_off
|
||||
return $RETVAL
|
||||
fi
|
||||
#selinux_off
|
||||
return $retval
|
||||
}
|
||||
|
||||
restart() {
|
||||
stop
|
||||
start
|
||||
stop
|
||||
start
|
||||
}
|
||||
|
||||
reload() {
|
||||
echo -n $"Reloading NIS service: "
|
||||
p=`/sbin/pidof -o %PPID 'ypbind'`
|
||||
RETVAL=$?
|
||||
if [ "$RETVAL" -eq 0 ]; then
|
||||
/bin/kill -HUP $p
|
||||
RETVAL=$?
|
||||
fi
|
||||
[ "$RETVAL" -eq 0 ] && success || failure
|
||||
echo
|
||||
return $RETVAL
|
||||
echo -n $"Reloading NIS service: "
|
||||
killproc $prog -HUP
|
||||
retval=$?
|
||||
echo
|
||||
return $retval
|
||||
}
|
||||
|
||||
RETVAL=0
|
||||
force_reload() {
|
||||
restart
|
||||
}
|
||||
|
||||
rh_status() {
|
||||
# run checks to determine if the service is running or use generic status
|
||||
status $prog
|
||||
}
|
||||
|
||||
rh_status_q() {
|
||||
rh_status >/dev/null 2>&1
|
||||
}
|
||||
|
||||
usage() {
|
||||
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
|
||||
}
|
||||
|
||||
# See how we were called.
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
RETVAL=$?
|
||||
if [ $RETVAL -eq 100 ]; then stop; RETVAL=1; fi
|
||||
start)
|
||||
rh_status_q && exit 0
|
||||
$1
|
||||
retval=$?
|
||||
if [ $retval -eq 100 ]; then stop; exit 1; fi
|
||||
exit $retval
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
RETVAL=$?
|
||||
stop)
|
||||
rh_status_q || exit 0
|
||||
$1
|
||||
;;
|
||||
status)
|
||||
status ypbind
|
||||
RETVAL=$?
|
||||
restart)
|
||||
$1
|
||||
;;
|
||||
restart)
|
||||
reload)
|
||||
rh_status_q || exit 7
|
||||
$1
|
||||
;;
|
||||
force-reload)
|
||||
force_reload
|
||||
;;
|
||||
status)
|
||||
rh_status
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
rh_status_q || exit 0
|
||||
restart
|
||||
RETVAL=$?
|
||||
;;
|
||||
condrestart|try-restart)
|
||||
if [ -e /var/lock/subsys/ypbind ]; then restart; fi
|
||||
usage)
|
||||
$1
|
||||
;;
|
||||
reload)
|
||||
reload
|
||||
;;
|
||||
force-reload)
|
||||
if ! reload; then restart; fi
|
||||
;;
|
||||
*)
|
||||
echo $"Usage: $0 {start|stop|restart|condrestart|try-restart|reload|force-reload|status}"
|
||||
RETVAL=3
|
||||
*)
|
||||
usage
|
||||
exit 2
|
||||
esac
|
||||
|
||||
exit $RETVAL
|
||||
exit $?
|
||||
|
@ -1,7 +1,7 @@
|
||||
Summary: The NIS daemon which binds NIS clients to an NIS domain
|
||||
Name: ypbind
|
||||
Version: 1.31
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
License: GPLv2
|
||||
Group: System Environment/Daemons
|
||||
Source0: ftp://ftp.us.kernel.org/pub/linux/utils/net/NIS/ypbind-mt-%{version}.tar.bz2
|
||||
@ -85,6 +85,10 @@ fi
|
||||
%doc README NEWS
|
||||
|
||||
%changelog
|
||||
* Thu Jan 21 2010 Karel Klic <kklic@redhat.com> - 3:1.31-2
|
||||
- Rewrote initscript to become closer to Packaging:SysVInitScript
|
||||
Fedora guildeline. Also fixes rhbz#523913
|
||||
|
||||
* Mon Jan 4 2010 Karel Klic <kklic@redhat.com> - 3:1.31-1
|
||||
- Updated to version 1.31 from upstream
|
||||
- Removed signalstate patch because it was merged by upstream
|
||||
|
Loading…
Reference in New Issue
Block a user