- Add a UID/GID for bitcoin.
- Rewrite the rc script with new options that allows users to: - set config file. - set datadir. - set bitcoin limits. PR: ports/213235 Submitted by: Christopher Hall <hsw@bitmark.com> Approved by: maintainer timeout (1 month)
This commit is contained in:
parent
9bcb50c707
commit
2d9b44f2b8
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=427077
4 changed files with 166 additions and 8 deletions
2
GIDs
2
GIDs
|
@ -720,7 +720,7 @@ postgres:*:770:
|
|||
# free: 776
|
||||
openxpki:*:777:
|
||||
# free: 778
|
||||
# free: 779
|
||||
bitcoin:*:779:
|
||||
zetacoin:*:780:
|
||||
# free: 781
|
||||
# free: 782
|
||||
|
|
2
UIDs
2
UIDs
|
@ -725,7 +725,7 @@ postgres:*:770:770::0:0:PostgreSQL Daemon:/var/db/postgres:/bin/sh
|
|||
# free: 776
|
||||
openxpki:*:777:777::0:0:OpenXPKI Owner:/nonexistent:/usr/sbin/nologin
|
||||
# free: 778
|
||||
# free: 779
|
||||
bitcoin:*:779:779::0:0:bitcoin Daemon:/var/db/bitcoin:/usr/sbin/nologin
|
||||
zetacoin:*:780:780::0:0:ZetaCoin Daemon:/nonexistent:/usr/sbin/nologin
|
||||
# free: 781
|
||||
# free: 782
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
PORTNAME= bitcoin
|
||||
PORTVERSION= 0.12.1
|
||||
DISTVERSIONPREFIX= v
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= net-p2p finance
|
||||
|
||||
MAINTAINER= robbak@robbak.com
|
||||
|
|
|
@ -1,15 +1,173 @@
|
|||
#!/bin/sh
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# PROVIDE: bitcoind
|
||||
# REQUIRE: LOGIN
|
||||
# REQUIRE: LOGIN cleanvar
|
||||
# KEYWORD: shutdown
|
||||
|
||||
#
|
||||
# Add the following lines to /etc/rc.conf to enable :
|
||||
# bitcoind_enable (bool): Set to "NO" by default.
|
||||
# Set it to "YES" to enable bitcoind
|
||||
# bitcoind_user (str) Set to "bitcoin" by default.
|
||||
# bitcoind_group (str) Set to "bitcoin" by default.
|
||||
# bitcoind_conf (str) Set to "%%PREFIX%%/etc/bitcoind.conf" by default.
|
||||
# bitcoind_data (str) Set to "/var/lib/bitcoind" by default.
|
||||
# bitcoindlimits_enable (bool) Set to "NO" by default.
|
||||
# Set it to "YES" to enable bitcoindlimits
|
||||
# bitcoindlimits_args Set to "-e -U ${bitcoind_user}" by default
|
||||
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name="bitcoind"
|
||||
rcvar=bitcoind_enable
|
||||
command="%%PREFIX%%/bin/bitcoind"
|
||||
|
||||
load_rc_config $name
|
||||
start_precmd="bitcoind_precmd"
|
||||
start_cmd="bitcoind_start"
|
||||
restart_precmd="bitcoind_checkconfig"
|
||||
reload_precmd="bitcoind_checkconfig"
|
||||
configtest_cmd="bitcoind_checkconfig"
|
||||
status_cmd="bitcoind_status"
|
||||
stop_cmd="bitcoind_stop"
|
||||
stop_postcmd="bitcoind_wait"
|
||||
command="%%PREFIX%%/bin/bitcoind"
|
||||
cli_command="%%PREFIX%%/bin/bitcoin-cli"
|
||||
daemon_command="/usr/sbin/daemon"
|
||||
#pidfile="/var/run/${name}.pid"
|
||||
extra_commands="configtest"
|
||||
|
||||
|
||||
: ${bitcoind_enable:="NO"}
|
||||
: ${bitcoindlimits_enable:="NO"}
|
||||
|
||||
load_rc_config ${name}
|
||||
|
||||
: ${bitcoind_user:="bitcoin"}
|
||||
: ${bitcoind_group:="bitcoin"}
|
||||
: ${bitcoind_data_dir:="/var/db/bitcoind"}
|
||||
: ${bitcoind_config_file:="%%PREFIX%%/etc/bitcoin.conf"}
|
||||
: ${bitcoindlimits_args:="-e -U ${bitcoind_user}"}
|
||||
|
||||
# set up dependant variables
|
||||
procname="${command}"
|
||||
pidfile="${bitcoind_data_dir}/bitcoind.pid"
|
||||
required_files="${bitcoind_config_file}"
|
||||
|
||||
|
||||
bitcoind_checkconfig()
|
||||
{
|
||||
echo "Performing sanity check on bitcoind configuration:"
|
||||
if [ ! -d "${bitcoind_data_dir}" ]
|
||||
then
|
||||
echo "Missing data directory: ${bitcoind_data_dir}"
|
||||
exit 1
|
||||
fi
|
||||
chown -R "${bitcoind_user}:${bitcoind_group}" "${bitcoind_data_dir}"
|
||||
|
||||
if [ ! -f "${bitcoind_config_file}" ]
|
||||
then
|
||||
echo "Missing configuration file: ${bitcoind_config_file}"
|
||||
exit 1
|
||||
fi
|
||||
if [ ! -x "${command}" ]
|
||||
then
|
||||
echo "Missing executable: ${command}"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
bitcoind_cleanup()
|
||||
{
|
||||
rm -f "${pidfile}"
|
||||
}
|
||||
|
||||
bitcoind_precmd()
|
||||
{
|
||||
bitcoind_checkconfig
|
||||
|
||||
pid=$(check_pidfile "${pidfile}" "${procname}")
|
||||
if [ -z "${pid}" ]
|
||||
then
|
||||
echo "Bitcoind is not running"
|
||||
rm -f "${pidfile}"
|
||||
fi
|
||||
|
||||
if checkyesno bitcoindlimits_enable
|
||||
then
|
||||
eval $(/usr/bin/limits ${bitcoindlimits_args}) 2>/dev/null
|
||||
else
|
||||
return 0
|
||||
fi
|
||||
}
|
||||
|
||||
bitcoind_status()
|
||||
{
|
||||
local pid
|
||||
pid=$(check_pidfile "${pidfile}" "${procname}")
|
||||
if [ -z "${pid}" ]
|
||||
then
|
||||
echo "Bitcoind is not running"
|
||||
return 1
|
||||
else
|
||||
echo "Bitcoind running, pid: ${pid}"
|
||||
fi
|
||||
}
|
||||
|
||||
bitcoind_start()
|
||||
{
|
||||
echo "Starting bitcoind:"
|
||||
cd "${bitcoind_data_dir}" || return 1
|
||||
${daemon_command} -u "${bitcoind_user}" -p "${pidfile}" \
|
||||
${command} \
|
||||
-conf="${bitcoind_config_file}" \
|
||||
-datadir="${bitcoind_data_dir}" 2> /tmp/bitcoind.stderr > /tmp/bitcoind.stdout
|
||||
}
|
||||
|
||||
bitcoind_stop()
|
||||
{
|
||||
echo "Stopping bitcoind:"
|
||||
pid=$(check_pidfile "${pidfile}" "${procname}")
|
||||
if [ -z "${pid}" ]
|
||||
then
|
||||
echo "Bitcoind is not running"
|
||||
return 1
|
||||
else
|
||||
${cli_command} -conf="${bitcoind_config_file}" -datadir="${bitcoind_data_dir}" stop
|
||||
fi
|
||||
}
|
||||
|
||||
bitcoind_wait()
|
||||
{
|
||||
local n=60
|
||||
echo "Waiting for bitcoind shutdown:"
|
||||
while :
|
||||
do
|
||||
printf '.'
|
||||
pid=$(check_pidfile "${pidfile}" "${procname}")
|
||||
if [ -z "${pid}" ]
|
||||
then
|
||||
printf '\n'
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
n=$((${n} - 1))
|
||||
if [ ${n} -eq 0 -a -f "${pidfile}" ]
|
||||
then
|
||||
printf "\nForce shutdown"
|
||||
kill -9 $(cat "${pidfile}")
|
||||
for n in 1 2 3
|
||||
do
|
||||
printf '.'
|
||||
sleep 1
|
||||
done
|
||||
printf '\n'
|
||||
break
|
||||
fi
|
||||
done
|
||||
rm -f "${pidfile}"
|
||||
echo "Shutdown complete"
|
||||
}
|
||||
|
||||
run_rc_command "$1"
|
||||
|
|
Loading…
Reference in a new issue