aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Brewer <tomboy64@sina.cn>2016-03-31 23:58:25 +0200
committerMatthew Brewer <tomboy64@sina.cn>2016-03-31 23:58:25 +0200
commitf97fc124c8b7a73536e84ea95bcca9b2e93a028a (patch)
tree7f73385643ebb21366414a4fa042927efbec9b96 /net-p2p/bitcoin-qt/files/bitcoin.initd-r1
parentdev-libs/actor-framework: (diff)
downloadtbc-f97fc124c8b7a73536e84ea95bcca9b2e93a028a.tar.gz
tbc-f97fc124c8b7a73536e84ea95bcca9b2e93a028a.tar.bz2
tbc-f97fc124c8b7a73536e84ea95bcca9b2e93a028a.zip
bla
Diffstat (limited to 'net-p2p/bitcoin-qt/files/bitcoin.initd-r1')
-rw-r--r--net-p2p/bitcoin-qt/files/bitcoin.initd-r1104
1 files changed, 104 insertions, 0 deletions
diff --git a/net-p2p/bitcoin-qt/files/bitcoin.initd-r1 b/net-p2p/bitcoin-qt/files/bitcoin.initd-r1
new file mode 100644
index 0000000..02a159c
--- /dev/null
+++ b/net-p2p/bitcoin-qt/files/bitcoin.initd-r1
@@ -0,0 +1,104 @@
+#!/sbin/runscript
+# Distributed under the terms of the GNU General Public License, v2 or later
+
+VARDIR="/var/lib/bitcoin"
+CONFFILE="${VARDIR}/.bitcoin/bitcoin.conf"
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ "${BITCOIN_USER}" = "" ] ; then
+ eerror "Please edit /etc/conf.d/bitcoind"
+ eerror "A user must be specified to run bitcoind 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 "${BITCOIN_USER}" | cut -d ':' -f 1 ) -sq` ; then
+ eerror "Please edit /etc/conf.d/bitcoind"
+ eerror "Specified user must exist!"
+ return 1
+ fi
+ if `echo "${BITCOIN_USER}" | grep ':' -sq` ; then
+ if ! `cut -d ':' -f 1 /etc/group | grep $( echo "${BITCOIN_USER}" | cut -d ':' -f 2 ) -sq` ; then
+ eerror "Please edit /etc/conf.d/bitcoind"
+ 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 Bitcoind daemon"
+
+ pkg-config openrc
+ if [ $? = 0 ]; then
+ start_openrc
+ else
+ start_baselayout
+ fi
+}
+
+stop() {
+ ebegin "Stopping Bitcoin daemon"
+
+ pkg-config openrc
+ if [ $? = 0 ]; then
+ stop_openrc
+ else
+ stop_baselayout
+ fi
+}
+
+start_openrc() {
+ start-stop-daemon \
+ --start --user "${BITCOIN_USER}" --name bitcoind \
+ --pidfile /var/run/bitcoind.pid --make-pidfile \
+ --env HOME="${VARDIR}" --exec /usr/bin/bitcoind \
+ --nicelevel "${NICELEVEL}" \
+ --background \
+ --wait 2000 \
+ -- ${BITCOIN_OPTS}
+ eend $?
+}
+
+stop_openrc() {
+ start-stop-daemon --stop --user "${BITCOIN_USER}" \
+ --name bitcoind --pidfile /var/run/bitcoind.pid \
+ --wait 30000 \
+ --progress
+ eend $?
+}
+
+start_baselayout() {
+ start-stop-daemon \
+ --start --user "${BITCOIN_USER}" --name bitcoind \
+ --pidfile /var/run/bitcoind.pid --make-pidfile \
+ --env HOME="${VARDIR}" --exec /usr/bin/bitcoind \
+ --chuid "${BITCOIN_USER}" \
+ --nicelevel "${NICELEVEL}" \
+ --background \
+ -- ${BITCOIN_OPTS}
+ eend $?
+}
+
+stop_baselayout() {
+ start-stop-daemon \
+ --stop \
+ --user "${BITCOIN_USER}" \
+ --name bitcoind \
+ --pidfile /var/run/bitcoind.pid
+ eend $?
+}