summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-p2p/litecoind/files/litecoin.initd')
-rw-r--r--net-p2p/litecoind/files/litecoin.initd104
1 files changed, 104 insertions, 0 deletions
diff --git a/net-p2p/litecoind/files/litecoin.initd b/net-p2p/litecoind/files/litecoin.initd
new file mode 100644
index 000000000000..036ab8c577a9
--- /dev/null
+++ b/net-p2p/litecoind/files/litecoin.initd
@@ -0,0 +1,104 @@
+#!/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 $?
+}