diff options
Diffstat (limited to 'net-nds/389-ds-base/files/389-ds.initd-r1')
-rw-r--r-- | net-nds/389-ds-base/files/389-ds.initd-r1 | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/net-nds/389-ds-base/files/389-ds.initd-r1 b/net-nds/389-ds-base/files/389-ds.initd-r1 new file mode 100644 index 000000000000..39744d55bdc9 --- /dev/null +++ b/net-nds/389-ds-base/files/389-ds.initd-r1 @@ -0,0 +1,89 @@ +#!/sbin/openrc-run +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +DIRSRV_EXEC="/usr/sbin/ns-slapd" +PID_DIRECTORY="/run/dirsrv" +LOCK_DIRECTORY="/var/lock/dirsrv" +DIRSRV_CONF_DIR="/etc/dirsrv" +DS_INSTANCES=${DIRSRV_CONF_DIR}/slapd-* + +depend() { + need net logger + use dns + provide dirsrv ldap +} + +checkconfig() { + if [ -z "${DS_INSTANCES}" ]; then + eerror "389 Directory Server has not been configured." + eend 1 + return 1 + fi +} + +start() { + checkconfig || return 1 + + for instance in ${DS_INSTANCES}; do + instance=$(basename ${instance}) + # skip .removed instances, bug #338133 + if [ "${instance%%.removed}" != "${instance}" ]; then + continue + fi + # Create the required directories in case they got nuked + mkdir -p ${PID_DIRECTORY} + mkdir -p ${LOCK_DIRECTORY}/${instance} + # This will probably break one day, we should be pulling out the suitespotuser from dse.ldif + chown dirsrv: ${PID_DIRECTORY} + chown dirsrv: ${LOCK_DIRECTORY}/${instance} + ebegin "Starting 389 Directory Server: instance ${instance}" + start-stop-daemon --start --quiet -m \ + --pidfile ${PID_DIRECTORY}/${instance}.startpid \ + --exec ${DIRSRV_EXEC} -- -D ${DIRSRV_CONF_DIR}/${instance} \ + -i ${PID_DIRECTORY}/${instance}.pid \ + -w ${PID_DIRECTORY}/${instance}.startpid + sts=${?} + eend ${sts} + if [ "${sts}" != "0" ]; then + return 1 + fi + done +} + + + +stop() { + checkconfig || return 1 + + for instance in ${DS_INSTANCES}; do + instance=$(basename ${instance}) + if [ "${instance%%.removed}" != "${instance}" ]; then + continue + fi + ebegin "Stopping 389 Directory Server: instance ${instance}" + start-stop-daemon --stop --quiet \ + --pidfile ${PID_DIRECTORY}/${instance}.pid \ + --exec ${DIRSRV_EXEC} + eend ${?} + done +} + +status() { + for instance in ${DS_INSTANCES}; do + instance=$(basename ${instance}) + if [ "${instance%%.removed}" != "${instance}" ]; then + continue + fi + if [ -e ${PID_DIRECTORY}/${instance}.pid ]; then + pid=$(cat ${PID_DIRECTORY}/${instance}.pid) + if [ $(echo "$pid" | grep -c $pid) -ge 1 ]; then + einfo "389 Directory Server: instance ${instance} (pid $pid) running." + else + ewarn "389 Directory Server: instance ${instance} (pid $pid) NOT running." + fi + else + eerror "389 Directory Server: instance ${instance} is NOT running." + fi + done +} |