#!/sbin/runscript # backward compatibility for existing gentoo layout # if [ -d "/var/lib/hush/.hush" ]; then HUSHD_DEFAULT_DATADIR="/var/lib/hush/.hush" else HUSHD_DEFAULT_DATADIR="/var/lib/hushd" fi HUSHD_CONFIGFILE=${HUSHD_CONFIGFILE:-/etc/hush/hush.conf} HUSHD_PIDDIR=${HUSHD_PIDDIR:-/var/run/hushd} HUSHD_PIDFILE=${HUSHD_PIDFILE:-${HUSHD_PIDDIR}/hushd.pid} HUSHD_DATADIR=${HUSHD_DATADIR:-${HUSHD_DEFAULT_DATADIR}} HUSHD_USER=${HUSHD_USER:-${HUSH_USER:-hush}} HUSHD_GROUP=${HUSHD_GROUP:-hush} HUSHD_BIN=${HUSHD_BIN:-/usr/bin/hushd} HUSHD_NICE=${HUSHD_NICE:-${NICELEVEL:-0}} HUSHD_OPTS="${HUSHD_OPTS:-${HUSH_OPTS}}" name="Hush Full Node Daemon" description="Hush cryptocurrency P2P network daemon" command="/usr/bin/hushd" command_args="-pid=\"${HUSHD_PIDFILE}\" \ -conf=\"${HUSHD_CONFIGFILE}\" \ -datadir=\"${HUSHD_DATADIR}\" \ -daemon \ ${HUSHD_OPTS}" required_files="${HUSHD_CONFIGFILE}" start_stop_daemon_args="-u ${HUSHD_USER} \ -N ${HUSHD_NICE} -w 2000" pidfile="${HUSHD_PIDFILE}" # The retry schedule to use when stopping the daemon. Could be either # a timeout in seconds or multiple signal/timeout pairs (like # "SIGKILL/180 SIGTERM/300") retry="${HUSHD_SIGTERM_TIMEOUT}" depend() { need localmount net } # verify # 1) that the datadir exists and is writable (or create it) # 2) that a directory for the pid exists and is writable # 3) ownership and permissions on the config file start_pre() { checkpath \ -d \ --mode 0750 \ --owner "${HUSHD_USER}:${HUSHD_GROUP}" \ "${HUSHD_DATADIR}" checkpath \ -d \ --mode 0755 \ --owner "${HUSHD_USER}:${HUSHD_GROUP}" \ "${HUSHD_PIDDIR}" checkpath -f \ -o ${HUSHD_USER}:${HUSHD_GROUP} \ -m 0660 \ ${HUSHD_CONFIGFILE} checkconfig || return 1 } checkconfig() { if ! grep -qs '^rpcpassword=' "${HUSHD_CONFIGFILE}" ; then eerror "" eerror "ERROR: You must set a secure rpcpassword to run hushd." eerror "The setting must appear in ${HUSHD_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 "" return 1 fi }