summaryrefslogtreecommitdiff
path: root/net-nds/389-ds-base/files/389-ds.initd-r1
diff options
context:
space:
mode:
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-r189
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
+}