#!/sbin/runscript # Distributed under the terms of the GNU General Public License, v2 or later PIDFILE="${DOGECOIN_DATADIR}/dogecoind.pid" DOGECOIN_OPTS="-daemon -pid=${DOGECOIN_DATADIR}/dogecoind.pid -datadir=${DOGECOIN_DATADIR} ${DOGECOIN_OPTS}" depend() { need net } checkconfig() { if [[ "${DOGECOIN_USERDIR}" == "" ]] ; then eerror "Please edit /etc/conf.d/dogecoind" eerror "A userdir must be specified." return 1 fi if [[ "${DOGECOIN_DATADIR}" == "" ]] ; then eerror "Please edit /etc/conf.d/dogecoind" eerror "A datadir must be specified." return 1 fi if [[ "${DOGECOIN_CONFFILE}" == "" ]] ; then eerror "Please edit /etc/conf.d/dogecoind" eerror "A conffile must be specified." return 1 fi if [[ "${DOGECOIN_USER}" == "" ]] ; then eerror "Please edit /etc/conf.d/dogecoind" eerror "A user must be specified to run dogecoind as that user." eerror "Modify USER to your needs (you may also add a group after a colon)" return 1 fi if ! `getent passwd | cut -d ':' -f 1 | grep $( echo "${DOGECOIN_USER}" | cut -d ':' -f 1 ) -sq` ; then eerror "Please edit /etc/conf.d/dogecoind" eerror "Specified user must exist!" return 1 fi if `echo "${DOGECOIN_USER}" | grep ':' -sq` ; then if ! `cut -d ':' -f 1 /etc/group | grep $( echo "${DOGECOIN_USER}" | cut -d ':' -f 2 ) -sq` ; then eerror "Please edit /etc/conf.d/dogecoind" eerror "Specified group must exist!" return 1 fi fi if ! grep -q '^rpcpassword=' "${DOGECOIN_CONFFILE}"; then eerror "Please edit `readlink -f ${DOGECOIN_CONFFILE}`" eerror "There must be at least a line assigning rpcpassword=something-secure" return 1 fi if ! stat -Lc '%a' "${DOGECOIN_CONFFILE}" | grep -q '^[4567]00$'; then eerror "`readlink -f ${DOGECOIN_CONFFILE}` should not be readable by other users" return 1 fi return 0 } start() { checkconfig || return 1 ebegin "Starting Dogecoind daemon" pkg-config openrc if [ $? = 0 ]; then start_openrc else start_baselayout fi } stop() { ebegin "Stopping Dogecoin daemon" pkg-config openrc if [ $? = 0 ]; then stop_openrc else stop_baselayout fi } start_openrc() { start-stop-daemon \ --start --user "${DOGECOIN_USER}" --name dogecoind \ --pidfile "${PIDFILE}" \ --env HOME="${DOGECOIN_USERDIR}" --exec /usr/bin/dogecoind \ --nicelevel "${NICELEVEL}" \ --wait 2000 \ -- ${DOGECOIN_OPTS} eend $? } stop_openrc() { start-stop-daemon --stop --user "${DOGECOIN_USER}" \ --name dogecoind --pidfile "${PIDFILE}" \ --wait 30000 \ --progress eend $? } start_baselayout() { start-stop-daemon \ --start --user "${DOGECOIN_USER}" --name dogecoind \ --pidfile "${PIDFILE}" \ --env HOME="${VARDIR}" --exec /usr/bin/dogecoind \ --chuid "${DOGECOIN_USER}" \ --nicelevel "${NICELEVEL}" \ -- ${DOGECOIN_OPTS} eend $? } stop_baselayout() { start-stop-daemon \ --stop \ --user "${DOGECOIN_USER}" \ --name dogecoind \ --pidfile "${PIDFILE}" eend $? }