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/net-p2p/bitcoin-core/files/bitcoind.openrc

90 lines
2.6 KiB

#!/sbin/openrc-run
: ${BITCOIND_CONFIGFILE:=/etc/bitcoin/bitcoin.conf}
: ${BITCOIND_PIDDIR:=/run/bitcoind}
: ${BITCOIND_PIDFILE:=${BITCOIND_PIDDIR}/${SVCNAME}.pid}
: ${BITCOIND_DATADIR:=/var/lib/bitcoind}
: ${BITCOIND_LOGDIR:=/var/log/bitcoind}
: ${BITCOIND_USER:=${BITCOIN_USER:-bitcoin}}
: ${BITCOIND_GROUP:=bitcoin}
: ${BITCOIND_BIN:=/usr/bin/bitcoind}
: ${BITCOIND_NICE:=${NICELEVEL:-0}}
: ${BITCOIND_OPTS=${BITCOIN_OPTS}}
name="Bitcoin Core daemon"
description="Bitcoin cryptocurrency P2P network daemon"
required_files="${BITCOIND_CONFIGFILE}"
pidfile="${BITCOIND_PIDFILE}"
in_background_fake="start"
depend() {
need localmount net
}
start_pre() {
checkpath -f --mode 0660 --owner "${BITCOIND_USER}:${BITCOIND_GROUP}" "${BITCOIND_CONFIGFILE}"
checkpath -d --mode 0750 --owner "${BITCOIND_USER}:${BITCOIND_GROUP}" "${BITCOIND_DATADIR}"
checkpath -d --mode 0755 --owner "${BITCOIND_USER}:${BITCOIND_GROUP}" "${BITCOIND_LOGDIR}"
checkpath -d --mode 0755 --owner "${BITCOIND_USER}:${BITCOIND_GROUP}" "${BITCOIND_PIDDIR}"
checkconfig
}
start() {
ebegin "Starting ${name}"
mark_service_inactive
if start-stop-daemon \
--pidfile="${BITCOIND_PIDFILE}" \
--chdir="${BITCOIND_DATADIR}" \
--user="${BITCOIND_USER}:${BITCOIND_GROUP}" \
--nice="${BITCOIND_NICE}" \
--exec="${BITCOIND_BIN}" \
-- \
-daemonwait \
-pid="${BITCOIND_PIDFILE}" \
-conf="${BITCOIND_CONFIGFILE}" \
-datadir="${BITCOIND_DATADIR}" \
-debuglogfile="${BITCOIND_LOGDIR}/debug.log" \
${BITCOIND_OPTS}
then
chmod g+r "${BITCOIND_DATADIR}/.cookie"
IN_BACKGROUND=yes rc-service "${SVCNAME}" --quiet start
else
rc-service "${SVCNAME}" --quiet zap
fi &
}
stop() {
ebegin "Stopping ${name}"
start-stop-daemon --stop \
--pidfile="${BITCOIND_PIDFILE}" \
--retry="${BITCOIND_SIGTERM_TIMEOUT}" \
--exec="${BITCOIND_BIN}"
eend $?
}
checkconfig() {
if grep -qs '^rpcuser=' "${BITCOIND_CONFIGFILE}" &&
! grep -qs '^rpcpassword=' "${BITCOIND_CONFIGFILE}"
then
eerror ""
eerror "ERROR: You must set a secure rpcpassword to run bitcoind."
eerror "The setting must appear in ${BITCOIND_CONFIGFILE}"
eerror ""
eerror "This password is security critical to securing wallets "
eerror "and must not be the same as the rpcuser setting."
eerror "You can generate a suitable random password using the following "
eerror "command from the shell:"
eerror ""
eerror "bash -c 'tr -dc a-zA-Z0-9 < /dev/urandom | head -c32 && echo'"
eerror ""
eerror "It is recommended that you also set alertnotify so you are "
eerror "notified of problems:"
eerror ""
eerror "ie: alertnotify=echo %%s | mail -s \"Bitcoin Alert\"" \
"admin@foo.com"
eerror ""
return 1
fi
}