| #!/sbin/runscript |
| # 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 $? |
| } |