X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=nscd.init;h=0b478d501088a34153eee64efa37ecf0c00e047c;hb=55789037f7653a6c1505715252713515cd3671b5;hp=2616a38409aecacf628998752c1353ff0ba5056f;hpb=5d4ed5eddf10da2c561c342dc74a4473b2ab6241;p=packages%2Fglibc.git diff --git a/nscd.init b/nscd.init index 2616a38..0b478d5 100644 --- a/nscd.init +++ b/nscd.init @@ -13,7 +13,6 @@ # Sanity checks. [ -f /etc/nscd.conf ] || exit 0 -[ -x /usr/sbin/nscd ] || exit 0 # Source function library. . /etc/rc.d/init.d/functions @@ -21,26 +20,62 @@ # Get sysconfig [ -f /etc/sysconfig/nscd ] && . /etc/sysconfig/nscd -RETVAL=0 -# See how we were called. -case "$1" in - start) +start() { if [ ! -f /var/lock/subsys/nscd ]; then msg_starting "Name Switch Cache Daemon" - daemon nscd + daemon /usr/sbin/nscd RETVAL=$? [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd else msg_already_running "Name Switch Cache Daemon" fi - ;; - stop) +} + +stop() { if [ -f /var/lock/subsys/nscd ]; then msg_stopping "Name Switch Cache Daemon" - busy - /usr/sbin/nscd -K + killproc --pidfile /var/run/nscd/nscd.pid nscd -TERM rm -f /var/lock/subsys/nscd >/dev/null 2>&1 - ok + else + msg_not_running "Name Switch Cache Daemon" + fi +} + +condrestart() { + if [ -f /var/lock/subsys/nscd ]; then + stop + start + else + msg_not_running "Name Switch Cache Daemon" + RETVAL=$1 + fi +} + +RETVAL=0 +# See how we were called. +case "$1" in + start) + start + ;; + stop) + stop + ;; + restart) + stop + start + ;; + try-restart) + condrestart 0 + ;; + force-reload) + condrestart 7 + ;; + reload) + if [ -f /var/lock/subsys/nscd ]; then + for db in passwd group hosts; do + show "Invalidating %s cache" $db; busy + nscd -i $db && ok || fail + done else msg_not_running "Name Switch Cache Daemon" fi @@ -49,13 +84,8 @@ case "$1" in status nscd exit $? ;; - restart|force-reload) - $0 stop - $0 start - exit $? - ;; *) - msg_usage "$0 {start|stop|restart|force-reload|status}" + msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status}" exit 3 esac