65 lines
1.5 KiB
Plaintext
65 lines
1.5 KiB
Plaintext
#!/sbin/openrc-run
|
|
# Copyright 1999-2005 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Id$
|
|
|
|
depend() {
|
|
use dns ldap net slapd
|
|
}
|
|
|
|
checkconfig() {
|
|
if [ ! -d /var/run/nscd ] ; then
|
|
mkdir -p /var/run/nscd
|
|
chmod 755 /var/run/nscd
|
|
fi
|
|
if [ -z "${NSCD_PERMS_OK}" ] && [ "$(stat -c %a /var/run/nscd)" != "755" ] ; then
|
|
echo ""
|
|
ewarn "nscd run dir is not world readable, you should reset the perms:"
|
|
ewarn "chmod 755 /var/run/nscd"
|
|
ewarn "chmod a+rw /var/run/nscd/socket"
|
|
echo ""
|
|
ewarn "To disable this warning, set 'NSCD_PERMS_OK' in /etc/conf.d/nscd"
|
|
echo ""
|
|
fi
|
|
}
|
|
|
|
start() {
|
|
checkconfig
|
|
|
|
ebegin "Starting Name Service Cache Daemon"
|
|
local secure=`while read curline ; do
|
|
table=${curline%:*}
|
|
entries=${curline##$table:}
|
|
table=${table%%[^a-z]*}
|
|
case $table in
|
|
passwd*|group*|hosts)
|
|
for entry in $entries ; do
|
|
case $entry in
|
|
nisplus*)
|
|
/usr/sbin/nscd_nischeck $table || \
|
|
/echo "-S $table,yes"
|
|
;;
|
|
esac
|
|
done
|
|
;;
|
|
esac
|
|
done < /etc/nsswitch.conf`
|
|
local pidfile="$(strings /usr/sbin/nscd | grep nscd.pid)"
|
|
mkdir -p "$(dirname ${pidfile})"
|
|
save_options pidfile "${pidfile}"
|
|
start-stop-daemon --start --quiet \
|
|
--exec /usr/sbin/nscd --pidfile "${pidfile}" \
|
|
-- $secure
|
|
eend $?
|
|
}
|
|
|
|
stop() {
|
|
local pidfile="$(get_options pidfile)"
|
|
[ -n "${pidfile}" ] && pidfile="--pidfile ${pidfile}"
|
|
ebegin "Shutting down Name Service Cache Daemon"
|
|
start-stop-daemon --stop --quiet --exec /usr/sbin/nscd ${pidfile}
|
|
eend $?
|
|
}
|
|
|
|
# vim:ts=4
|