#!/sbin/openrc-run # Copyright 1999-2021 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 extra_started_commands="reload" SERVICENAME=${SVCNAME#*.} SERVICENAME=${SERVICENAME:-stunnel} STUNNEL_CONFIGFILE=${STUNNEL_CONFIGFILE:-/etc/stunnel/${SERVICENAME}.conf} depend() { need net before logger } get_config() { if [ ! -e ${STUNNEL_CONFIGFILE} ] ; then eerror "You need to create ${STUNNEL_CONFIGFILE} first." return 1 fi CHROOT=$(grep "^chroot" ${STUNNEL_CONFIGFILE} | sed "s;.*= *;;") [ -n "${CHROOT}" ] && CHROOT="--chroot ${CHROOT}" PIDFILE=$(grep "^pid" ${STUNNEL_CONFIGFILE} | sed "s;.*= *;;") PIDFILE=${PIDFILE:-/run/stunnel/${SERVICENAME}.pid} SETUID=$(grep "^setuid" ${STUNNEL_CONFIGFILE} | sed "s;.*= *;;") SETUID=${SETUID:-stunnel} SETGID=$(grep "^setgid" ${STUNNEL_CONFIGFILE} | sed "s;.*= *;;") SETGID=${SETGID:-stunnel} } start() { get_config || return 1 checkpath -d -m 0775 -o root:stunnel /run/stunnel if [ "$(dirname ${PIDFILE})" != "/run" ]; then checkpath -d -m 0755 -o ${SETUID}:${SETGID} -q $(dirname ${PIDFILE}) fi ebegin "Starting ${SVCNAME}" start-stop-daemon --start --pidfile "${PIDFILE}" ${CHROOT} \ --exec /usr/bin/stunnel -- ${STUNNEL_CONFIGFILE} ${STUNNEL_OPTIONS} eend $? "Failed to start ${SVCNAME}" } stop() { get_config || return 1 ebegin "Stopping ${SVCNAME}" start-stop-daemon --stop --quiet --exec /usr/bin/stunnel \ --pidfile ${PIDFILE} eend $? "Failed to stop ${SVCNAME}" } reload() { get_config || return 1 ebegin "Reloading ${SVCNAME}" start-stop-daemon --signal HUP --pidfile ${PIDFILE} --name stunnel eend $? }