diff options
Diffstat (limited to 'sys-cluster/glusterfs/files')
-rw-r--r-- | sys-cluster/glusterfs/files/glusterd-10.2.initd | 32 | ||||
-rw-r--r-- | sys-cluster/glusterfs/files/glusterfsd-10.2.initd | 121 |
2 files changed, 153 insertions, 0 deletions
diff --git a/sys-cluster/glusterfs/files/glusterd-10.2.initd b/sys-cluster/glusterfs/files/glusterd-10.2.initd new file mode 100644 index 000000000000..af8f941d87d7 --- /dev/null +++ b/sys-cluster/glusterfs/files/glusterd-10.2.initd @@ -0,0 +1,32 @@ +#!/sbin/openrc-run +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +description="Gluster elastic volume management daemon" +command="/usr/sbin/glusterd" +pidfile="/run/${SVCNAME}.pid" +command_args="-N" + +command_background="yes" + +depend() { + need net + before netmount +} + +start_pre() { + # Ensure that the GlusterFS auxiliary mount parent directory exists + checkpath --directory --owner gluster:gluster --mode 0775 /run/gluster +} + +start_post() { + local c=0 + ebegin "Waiting for glusterd to start up" + while ! /usr/sbin/gluster volume list >/dev/null 2>&1 && [ "${c}" -lt "${glusterd_max_wait_start-60}" ]; do + $(( c=c+1 )) + done + [ "${c}" -lt "${glusterd_max_wait_start-60}" ] + eend $? + + return 0 +} diff --git a/sys-cluster/glusterfs/files/glusterfsd-10.2.initd b/sys-cluster/glusterfs/files/glusterfsd-10.2.initd new file mode 100644 index 000000000000..c8b6562e02a2 --- /dev/null +++ b/sys-cluster/glusterfs/files/glusterfsd-10.2.initd @@ -0,0 +1,121 @@ +#!/sbin/openrc-run +# Copyright 1999-2022 Gentoo Authors +# 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}" -a ! -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} +} |