diff options
Diffstat (limited to 'net-dns/namecoind/files/namecoin.initd')
-rw-r--r-- | net-dns/namecoind/files/namecoin.initd | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/net-dns/namecoind/files/namecoin.initd b/net-dns/namecoind/files/namecoin.initd new file mode 100644 index 000000000000..4330c918e44b --- /dev/null +++ b/net-dns/namecoind/files/namecoin.initd @@ -0,0 +1,104 @@ +#!/sbin/runscript +# Distributed under the terms of the GNU General Public License, v2 or later + +VARDIR="/var/lib/namecoin" +CONFFILE="${VARDIR}/.namecoin/bitcoin.conf" + +depend() { + need net +} + +checkconfig() { + if [[ "${NAMECOIN_USER}" == "" ]] ; then + eerror "Please edit /etc/conf.d/namecoind" + eerror "A user must be specified to run namecoind 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 "${NAMECOIN_USER}" | cut -d ':' -f 1 ) -sq` ; then + eerror "Please edit /etc/conf.d/namecoind" + eerror "Specified user must exist!" + return 1 + fi + if `echo "${NAMECOIN_USER}" | grep ':' -sq` ; then + if ! `cut -d ':' -f 1 /etc/group | grep $( echo "${NAMECOIN_USER}" | cut -d ':' -f 2 ) -sq` ; then + eerror "Please edit /etc/conf.d/namecoind" + 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 Namecoind daemon" + + pkg-config openrc + if [ $? = 0 ]; then + start_openrc + else + start_baselayout + fi +} + +stop() { + ebegin "Stopping Namecoin daemon" + + pkg-config openrc + if [ $? = 0 ]; then + stop_openrc + else + stop_baselayout + fi +} + +start_openrc() { + start-stop-daemon \ + --start --user "${NAMECOIN_USER}" --name namecoind \ + --pidfile /var/run/namecoind.pid --make-pidfile \ + --env HOME="${VARDIR}" --exec /usr/bin/namecoind \ + --nicelevel "${NICELEVEL}" \ + --background \ + --wait 2000 \ + -- ${NAMECOIN_OPTS} + eend $? +} + +stop_openrc() { + start-stop-daemon --stop --user "${NAMECOIN_USER}" \ + --name namecoind --pidfile /var/run/namecoind.pid \ + --wait 30000 \ + --progress + eend $? +} + +start_baselayout() { + start-stop-daemon \ + --start --user "${NAMECOIN_USER}" --name namecoind \ + --pidfile /var/run/namecoind.pid --make-pidfile \ + --env HOME="${VARDIR}" --exec /usr/bin/namecoind \ + --chuid "${NAMECOIN_USER}" \ + --nicelevel "${NICELEVEL}" \ + --background \ + -- ${NAMECOIN_OPTS} + eend $? +} + +stop_baselayout() { + start-stop-daemon \ + --stop \ + --user "${NAMECOIN_USER}" \ + --name namecoind \ + --pidfile /var/run/namecoind.pid + eend $? +} |