You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/sys-cluster/glusterfs/files/glusterfs-r1.initd

122 lines
3.0 KiB

#!/sbin/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
if [[ "${SVCNAME}" != "glusterfs" ]]
then
GLUSTERFS_NAME="${SVCNAME#glusterfs.}"
else
GLUSTERFS_NAME="glusterfs"
fi
GLUSTERFS_PIDFILE="/var/run/${SVCNAME}.pid"
eval 'GLUSTERFS_LOGFILE="${'${GLUSTERFS_NAME}'_log:-/var/log/glusterfs/'${GLUSTERFS_NAME}'.log}"'
eval 'GLUSTERFS_VOLFILE="${'${GLUSTERFS_NAME}'_vol:-/etc/glusterfs/'${GLUSTERFS_NAME}'.vol}"'
eval 'GLUSTERFS_SERVER="${'${GLUSTERFS_NAME}'_server}"'
eval 'GLUSTERFS_PORT="${'${GLUSTERFS_NAME}'_port:-6996}"'
eval 'GLUSTERFS_TRANSPORT="${'${GLUSTERFS_NAME}'_transport:-socket}"'
eval 'GLUSTERFS_OPTS="${'${GLUSTERFS_NAME}'_opts}"'
eval 'GLUSTERFS_MOUNTPOINT="${'${GLUSTERFS_NAME}'_mountpoint}"'
depend() {
need net
[[ -n "${GLUSTERFS_MOUNTPOINT}" ]] && need fuse
use dns
before netmount
after firewall ntp-client ntpd
}
checkconfig() {
if [[ -z "${GLUSTERFS_NAME}" ]]
then
eerror "The service name is not properly formatted."
return 1
fi
if [[ -z "${GLUSTERFS_SERVER}" ]]
then
if [[ -z "${GLUSTERFS_VOLFILE}" ]]
then
eerror "No GlusterFS volume file source has been defined. Edit /etc/conf.d/glusterfs"
eerror "and configure a volume file source for ${SVCNAME}."
return 1
else
if [[ ! -f "${GLUSTERFS_VOLFILE}" ]]
then
eerror "Cannot find volume file: ${GLUSTERFS_VOLFILE}"
return 1
fi
fi
fi
if [[ -n "${GLUSTERFS_MOUNTPOINT}" && ! -d "${GLUSTERFS_MOUNTPOINT}" ]]
then
eerror "The mountpoint ${GLUSTERFS_MOUNTPOINT} does not exist."
return 1
fi
}
start() {
local status daemon
checkconfig || return 1
ebegin "Starting GlusterFS (${SVCNAME})"
eindent
if [[ -z "${GLUSTERFS_MOUNTPOINT}" ]]
then
einfo "Starting in server mode ..."
daemon="glusterfsd"
else
einfo "Starting in client mode. Mounting filesystem ..."
daemon="glusterfs"
fi
if [[ -n "${GLUSTERFS_SERVER}" ]]
then
einfo "Using server supplied volume file"
start-stop-daemon --start --pidfile ${GLUSTERFS_PIDFILE} \
--exec /usr/sbin/${daemon} -- \
--pid-file=${GLUSTERFS_PIDFILE} \
--log-file=${GLUSTERFS_LOGFILE} \
--volfile-server=${GLUSTERFS_SERVER} \
--volfile-server-port=${GLUSTERFS_PORT} \
--volfile-server-transport=${GLUSTERFS_TRANSPORT} \
${GLUSTERFS_OPTS} ${GLUSTERFS_MOUNTPOINT}
status="$?"
else
einfo "Using local volume file"
start-stop-daemon --start --pidfile ${GLUSTERFS_PIDFILE} \
--exec /usr/sbin/${daemon} -- \
--pid-file=${GLUSTERFS_PIDFILE} \
--log-file=${GLUSTERFS_LOGFILE} \
--volfile=${GLUSTERFS_VOLFILE} \
${GLUSTERFS_OPTS} ${GLUSTERFS_MOUNTPOINT}
status="$?"
fi
eoutdent
eend ${status}
}
stop() {
local status
ebegin "Stopping GlusterFS (${SVCNAME})"
eindent
if [[ -z "${GLUSTERFS_MOUNTPOINT}" ]]
then
einfo "Stopping server process ..."
start-stop-daemon --stop --pidfile ${GLUSTERFS_PIDFILE}
status="$?"
else
einfo "Unmounting ${GLUSTERFS_MOUNTPOINT} ..."
umount "${GLUSTERFS_MOUNTPOINT}"
status="$?"
fi
eoutdent
eend ${status}
}