1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- #!/usr/bin/openrc-run
- # Copyright 1999-2020 Gentoo Authors
- # Distributed under the terms of the GNU General Public License v2
- description="The 'Name Service Cache Daemon' is a daemon that provides a cache"
- description="${description} for the most common name service requests"
- extra_started_commands="flush_all flush_hosts flush_group flush_passwd flush_netgroup flush_services"
- description_flush_all="Will invalidate hosts, group, passwd, netgroup and services cache"
- description_flush_hosts="Will invalidate hosts cache"
- description_flush_group="Will invalidate group cache"
- description_flush_passwd="Will invalidate passwd cache"
- description_flush_netgroup="Will invalidate netgroup cache"
- description_flush_services="Will invalidate services cache"
- pidfile="/run/nscd/nscd.pid"
- command="/usr/bin/nscd"
- depend() {
- use dns ldap net slapd logger
- }
- checkconfig() {
- if [ ! -d /run/nscd ] ; then
- checkpath -d -m 755 /run/nscd
- fi
- if [ -z "${NSCD_PERMS_OK}" ] && [ "$(stat -c %a /run/nscd)" != "755" ] ; then
- ewarn "nscd run dir is not readable, you should reset the perms:"
- ewarn "chmod 755 /run/nscd"
- ewarn "chmod a+rw /run/nscd/socket"
- ewarn "To disable this warning, set 'NSCD_PERMS_OK' in /etc/conf.d/nscd"
- fi
- if grep -qs '^[[:space:]]*persistent\>' /etc/nscd.conf ; then
- checkpath -d -m 700 /var/db/nscd
- fi
- }
- _flush() {
- local table=$1
- ebegin "Flushing ${table} table"
- ${command} --invalidate ${table}
- eend $?
- }
- flush_all() {
- local has_errors=0
- ebegin "Flushing all caches"
- local table=
- for table in passwd group hosts netgroup services; do
- ${command} --invalidate ${table}
- [ $? -ne 0 ] && has_errors=1
- done
- eend ${has_errors}
- }
- flush_hosts() {
- _flush hosts
- }
- flush_group() {
- _flush group
- }
- flush_passwd() {
- _flush passwd
- }
- flush_netgroup() {
- _flush netgroup
- }
- flush_services() {
- _flush services
- }
- start_pre() {
- checkconfig
- }
|