diff --git a/scripts/dpkg/signer.postinst b/scripts/dpkg/signer.postinst index 0517aa58e002b2ae369200cc41abaa6f1503e547..a7f96e6557b878ed2b7e9729f0e1189950b96dab 100644 --- a/scripts/dpkg/signer.postinst +++ b/scripts/dpkg/signer.postinst @@ -5,9 +5,8 @@ group=tzsigner homedir=/var/tzsigner # Ensure the tzsigner user is created -getent group ${group} >/dev/null 2>&1 || addgroup --system ${group} -getent passwd ${user} >/dev/null 2>&1 || adduser --system \ - --home $homedir \ +getent group ${group} >/dev/null 2>&1 || addgroup ${group} +getent passwd ${user} >/dev/null 2>&1 || adduser --home $homedir \ --shell /bin/bash \ --disabled-password \ --ingroup ${group} ${user} diff --git a/scripts/dpkg/smartrollup.postinst b/scripts/dpkg/smartrollup.postinst index ae06162aaad1520c9b8542761b6ce7adbc69683d..f8cbb3970b38009e3f8c7b4ca2c2ff717731acbe 100644 --- a/scripts/dpkg/smartrollup.postinst +++ b/scripts/dpkg/smartrollup.postinst @@ -1,4 +1,16 @@ #!/bin/sh +user=tezos +group=tezos +homedir=/var/tezos + +# Ensure the tezos user is created +getent group ${group} >/dev/null 2>&1 || addgroup --system ${group} +getent passwd ${user} >/dev/null 2>&1 || adduser --system \ + --home $homedir \ + --shell /bin/bash \ + --disabled-password \ + --ingroup ${group} ${user} + # Reload to get new init scripts /usr/bin/systemctl daemon-reload diff --git a/scripts/pkg-common/baker.conf b/scripts/pkg-common/baker.conf index 53621ac7373c9f3cb2f489f9abc02c98720e6ebd..79843f0381e6d5cc3692702d62622041a1002cbb 100644 --- a/scripts/pkg-common/baker.conf +++ b/scripts/pkg-common/baker.conf @@ -2,7 +2,7 @@ user=tezos group=tezos -# Wait for Node to bootstrap before starting bakers +# Wait for node waitfornode=yes # Keepalive - don't exit if node disappears (if yes) diff --git a/scripts/pkg-common/baker.initd.in b/scripts/pkg-common/baker.initd.in index 4b46632909110e931754769d60e71bb3d8ea447a..86b7a85022071c4f9f846d8523ef246422a89766 100755 --- a/scripts/pkg-common/baker.initd.in +++ b/scripts/pkg-common/baker.initd.in @@ -37,6 +37,9 @@ rotateonstart=yes protocols="@PROTOCOLS@" waitfornode=yes othercliopts_baker_@PROTOCOL@="" + +nodesetup=local + keepalive=yes keepalive_opt="-K" @@ -52,12 +55,26 @@ accuser="/usr/bin/octez-accuser" [ "${keepalive}" != "yes" ] && keepalive_opt="" + +wait_for_bootstrap() +{ + echo "Waiting for node to be bootstrapped" >&2 + + while :; do + /usr/bin/octez-client bootstrapped >/dev/null 2>&1 && break + echo "Node not ready - sleeping for 30 seconds" >&2 + sleep 30 + done +} + initial_checks() { mkdir -p ${PIDDIR} chown $user:$group ${PIDDIR} mkdir -p ${logdir} + chown $user:$group ${logdir} + if [ -z "$lq_vote" ]; then echo "lq_vote must be set in /etc/octez/baker.conf" >&2 exit 3 @@ -67,18 +84,17 @@ initial_checks() exit 3 fi -} - -wait_for_bootstrap() -{ - echo "Waiting for node to be bootstrapped" >&2 + if [ "$nodesetup" != "local" ]; then + echo "Only local nodes currently supported by the package" >&2 + exit 3 + fi - while :; do - /usr/bin/octez-client bootstrapped >/dev/null 2>&1 && break - echo "Node not ready - sleeping for 30 seconds" >&2 - sleep 30 + if [ ! -d "$nodedir" ] && [ "$nodesetup" = "local" ]; then + echo "$nodedir must be set up with a local running node" >&2 + exit 3 + fi - done + [ "$waitfornode" = "yes" ] && wait_for_bootstrap } @@ -86,8 +102,10 @@ rotate_logs () { if [ ${rotateonstart} = "yes" ]; then for p in ${protocols}; do - mv -f "${logfile_baseb}${p}.log" "${logfile_baseb}${p}.log.1" - mv -f "${logfile_basea}${p}.log" "${logfile_basea}${p}.log.1" + [ -f "${logfile_baseb}${p}.log" ] && \ + mv -f "${logfile_baseb}${p}.log" "${logfile_baseb}${p}.log.1" + [ -f "${logfile_basea}${p}.log" ] && \ + mv -f "${logfile_basea}${p}.log" "${logfile_basea}${p}.log.1" done fi } @@ -95,7 +113,6 @@ rotate_logs () case "$1" in start) initial_checks rotate_logs - [ "$waitfornode" = "yes" ] && wait_for_bootstrap for p in ${protocols}; do [ ! -x "${baker}-$p" ] && continue @@ -106,9 +123,8 @@ start) initial_checks ;; stop) for p in ${protocols}; do - [ ! -x "${baker}-$p" ] && continue - kill "$(cat ${PIDFILEB}-$p)" - kill "$(cat ${PIDFILEA}-$p)" + [ -f "${PIDFILEB}-$p" ] && kill "$(cat ${PIDFILEB}-$p)" + [ -f "${PIDFILEA}-$p" ] && kill "$(cat ${PIDFILEA}-$p)" rm -f ${PIDFILEB}-$p ${PIDFILEA}-$p done ;; diff --git a/scripts/pkg-common/signer.initd.in b/scripts/pkg-common/signer.initd.in index efa82aeaf477c0ecb0cdcda24aaafd7ea48611a3..d08d5f191ab0e02048cea327a8a5a0c52df83b4d 100755 --- a/scripts/pkg-common/signer.initd.in +++ b/scripts/pkg-common/signer.initd.in @@ -98,7 +98,7 @@ initial_checks() rotate_logs () { if [ ${rotateonstart} = "yes" ]; then - mv -f "${logfile}" "${logfile}.1" + [ -f "${logfile}" ] && mv -f "${logfile}" "${logfile}.1" fi } diff --git a/scripts/pkg-common/smartrollup.conf b/scripts/pkg-common/smartrollup.conf index 889c84c2ea5503c60102f41ebb909c92064fec52..6d447d81e101842ecd60d7de5758969f92eef9af 100644 --- a/scripts/pkg-common/smartrollup.conf +++ b/scripts/pkg-common/smartrollup.conf @@ -3,12 +3,10 @@ #group=tezos # Data directories -#clientdir=~tezos/.tezos-client +#clientdir=/var/tezos/.tezos-client +#rollupdatadir=/var/tezos/.tezos-smart-rollup-node rollupdatadir=/var/tezos/smartrollup -# Wait for Node to bootstrap before starting rollup node -waitfornode=yes - # Assume the node is on the local machine. Change if not. nodeaddr=127.0.0.1 rpcport=8732 diff --git a/scripts/pkg-common/smartrollup.initd.in b/scripts/pkg-common/smartrollup.initd.in index 995b1b5ebe2e5146eb7308659d42ddca0b0f96f0..da795778ca3e3f6cfe8d557f7e49e139c1e897da 100755 --- a/scripts/pkg-common/smartrollup.initd.in +++ b/scripts/pkg-common/smartrollup.initd.in @@ -31,9 +31,9 @@ user=tezos group=tezos nodedir=/var/tezos/node clientdir=~tezos/.tezos-client +rollupdatadir=~tezos/.tezos-smart-rollup-node logdir=/var/log/tezos rotateonstart=yes -waitfornode=yes nodeaddr=127.0.0.1 rpcport=8732 othercliopts_smartrollup="" @@ -52,52 +52,29 @@ initial_checks() chown $user:$group ${PIDDIR} mkdir -p ${logdir} - if [ -z "$rollupdatadir" ]; then - echo "rollupdatadir must be set in /etc/octez/smartrollup.conf" >&2 - exit 3 - fi - if [ -z "$clientdir" ]; then - echo "clientdir must be set" >&2 - exit 3 - fi + chown $user:$group ${logdir} if [ ! -f "$rollupdatadir/config.json" ]; then echo "Rollup not configured" >&2 exit 3 fi -} - -wait_for_bootstrap() -{ - echo "Waiting for node to be bootstrapped" >&2 - - while [ 1 = 1 ]; do - /usr/bin/octez-client -E $nodeurl bootstrapped >/dev/null 2>&1 - [ "$?" = "0" ] && break - echo "Node not ready - sleeping for 30 seconds" >&2 - sleep 30 - done - - - } rotate_logs () { if [ ${rotateonstart} = "yes" ]; then - mv -f "${logfile}" "${logfile}.1" + [ -f "${logfile}" ] && mv -f "${logfile}" "${logfile}.1" fi } case "$1" in start) initial_checks rotate_logs - [ "$waitfornode" = "yes" ] && wait_for_bootstrap su $user -c "${sr} -d "$clientdir" -E $nodeurl run --data-dir "$rollupdatadir" ${othercliopts_smartrollup} >> ${logfile} 2>&1 &" ;; stop) - pkill octez-smart-rollup-node + pkill -f octez-smart-rollup-node ;; restart) $0 stop diff --git a/scripts/pkg-common/vdf.initd.in b/scripts/pkg-common/vdf.initd.in index 790171258f412020fa947a03d69cf3cd56a41cf5..b449e323909779bf6ffc7dd45b09285e11f66cc7 100755 --- a/scripts/pkg-common/vdf.initd.in +++ b/scripts/pkg-common/vdf.initd.in @@ -33,7 +33,6 @@ group=tezos logdir=/var/log/tezos rotateonstart=yes protocols="@PROTOCOLS@" -waitfornode=yes #shellcheck disable=SC1091 [ -r /etc/octez/node.conf ] && . /etc/octez/node.conf @@ -49,19 +48,7 @@ initial_checks() chown $user:$group ${PIDDIR} mkdir -p ${logdir} - -} - -wait_for_bootstrap() -{ - echo "Waiting for node to be bootstrapped" >&2 - - while :; do - /usr/bin/octez-client bootstrapped >/dev/null 2>&1 && break - echo "Node not ready - sleeping for 30 seconds" >&2 - sleep 30 - - done + chown $user:$group ${logdir} } @@ -69,7 +56,8 @@ rotate_logs () { if [ ${rotateonstart} = "yes" ]; then for p in ${protocols}; do - mv -f "${logfile_base}${p}.log" "${logfile_base}${p}.log.1" + [ -f "${logfile_base}${p}.log" ] && \ + mv -f "${logfile_base}${p}.log" "${logfile_base}${p}.log.1" done fi } @@ -77,7 +65,6 @@ rotate_logs () case "$1" in start) initial_checks rotate_logs - [ "$waitfornode" == "yes" ] && wait_for_bootstrap for p in ${protocols}; do [ ! -x "${baker}-$p" ] && continue su $user -c "${baker}-$p run vdf -K >> ${logfile_base}${p}.log 2>&1 & echo \$! > ${PIDFILE}-$p" diff --git a/scripts/rpm/smartrollup-spec.in b/scripts/rpm/smartrollup-spec.in index c1f633ad823d261cbbf7fb3b04745dc76334eb8d..762d59172cef5529d4938117926887aae87c9db3 100644 --- a/scripts/rpm/smartrollup-spec.in +++ b/scripts/rpm/smartrollup-spec.in @@ -25,4 +25,6 @@ The Octez Smart Rollup daemons %config /etc/octez/smartrollup.conf %post +getent group tezos >/dev/null 2>&1 || groupadd tezos +getent passwd tezos >/dev/null 2>&1 || useradd -g tezos -d /var/tezos tezos /usr/bin/systemctl daemon-reload