#!/sbin/openrc-run # Distributed under the terms of the GNU General Public License, v2 or later VARDIR="/var/lib/litecoin" CONFFILE="${VARDIR}/.litecoin/litecoin.conf" depend() { need net } checkconfig() { if [[ "${LITECOIN_USER}" == "" ]] ; then eerror "Please edit /etc/conf.d/litecoind" eerror "A user must be specified to run litecoind 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 "${LITECOIN_USER}" | cut -d ':' -f 1 ) -sq` ; then eerror "Please edit /etc/conf.d/litecoind" eerror "Specified user must exist!" return 1 fi if `echo "${LITECOIN_USER}" | grep ':' -sq` ; then if ! `cut -d ':' -f 1 /etc/group | grep $( echo "${LITECOIN_USER}" | cut -d ':' -f 2 ) -sq` ; then eerror "Please edit /etc/conf.d/litecoind" eerror "Specified group must exist!" return 1 fi fi if ! grep -q '^rpcpassword=' "${CONFFILE}"; then eerror "Please edit `readlink -f ${CONFFILE}`" eerror "There must be at least a line assigning rpcpassword=something-secure" return 1 fi if ! stat -Lc '%a' "${CONFFILE}" | grep -q '^[4567]00$'; then eerror "`readlink -f ${CONFFILE}` should not be readable by other users" return 1 fi return 0 } start() { checkconfig || return 1 ebegin "Starting Litecoind daemon" pkg-config openrc if [ $? = 0 ]; then start_openrc else start_baselayout fi } stop() { ebegin "Stopping Litecoin daemon" pkg-config openrc if [ $? = 0 ]; then stop_openrc else stop_baselayout fi } start_openrc() { start-stop-daemon \ --start --user "${LITECOIN_USER}" --name litecoind \ --pidfile /var/run/litecoind.pid --make-pidfile \ --env HOME="${VARDIR}" --exec /usr/bin/litecoind \ --nicelevel "${NICELEVEL}" \ --background \ --wait 2000 \ -- ${LITECOIN_OPTS} eend $? } stop_openrc() { start-stop-daemon --stop --user "${LITECOIN_USER}" \ --name litecoind --pidfile /var/run/litecoind.pid \ --wait 30000 \ --progress eend $? } start_baselayout() { start-stop-daemon \ --start --user "${LITECOIN_USER}" --name litecoind \ --pidfile /var/run/litecoind.pid --make-pidfile \ --env HOME="${VARDIR}" --exec /usr/bin/litecoind \ --chuid "${LITECOIN_USER}" \ --nicelevel "${NICELEVEL}" \ --background \ -- ${LITECOIN_OPTS} eend $? } stop_baselayout() { start-stop-daemon \ --stop \ --user "${LITECOIN_USER}" \ --name litecoind \ --pidfile /var/run/litecoind.pid eend $? }