fixes
authorIan Kelling <ian@iankelling.org>
Wed, 27 Dec 2023 21:13:02 +0000 (16:13 -0500)
committerIan Kelling <ian@iankelling.org>
Wed, 27 Dec 2023 21:13:02 +0000 (16:13 -0500)
brc2
distro-end
filesystem/usr/local/bin/bitcoinoff
filesystem/usr/local/bin/bitcoinon
filesystem/usr/local/bin/myupgrade
prof-tail
system-status

diff --git a/brc2 b/brc2
index fbe19ebbcca468d00b2f2caa942466cd83bf88ec..32ac77a4219ff33b15dbe858ac7d05903c51f46b 100644 (file)
--- a/brc2
+++ b/brc2
@@ -1806,6 +1806,66 @@ satoshi() { # $1 satoshi in usd
     printf "$%.2f\n" "$(echo "scale=10; $price * $1"| bc -l)"
   fi
 }
+
+# Bitcoin holds open the wallet file. this causes problems for a
+# secondary computer running bitcoin and receiving a backup. So, as a
+# workaround, I intend to manually enable the wallet when I want to use
+# it and leave it disabled otherwise.
+walleton() {
+  local active
+  active=false
+  no_on=true
+  if [[ ! $(readlink -f /var/lib/bitcoind/wallets) == /q/wallets ]]; then
+    if systemctl --quiet is-active bitcoind; then
+      if [[ -e /tmp/no-bitcoinon ]]; then
+        no_on=true
+      else
+        if [[ $EUID == 0 ]]; then
+          m install -T -o iank -g iank /dev/null /tmp/no-bitcoinon
+        else
+          m touch /tmp/no-bitcoinon
+        fi
+      fi
+      active=true
+      m ser stop bitcoind
+    fi
+    m s ln -s /q/wallets /var/lib/bitcoind
+    sudo chown -h bitcoin:bitcoin /var/lib/bitcoind/wallets
+    if $active; then
+      m ser start bitcoind
+      if ! $no_on; then
+        m rm /tmp/no-bitcoinon
+      fi
+    fi
+  fi
+}
+walletoff() {
+  local active
+  active=false
+  no_on=true
+  if [[ $(readlink -f /var/lib/bitcoind/wallets) == /q/wallets ]]; then
+    if systemctl --quiet is-active bitcoind; then
+      if [[ -e /tmp/no-bitcoinon ]]; then
+        no_on=true
+      else
+        if [[ $EUID == 0 ]]; then
+          m install -T -o iank -g iank /dev/null /tmp/no-bitcoinon
+        else
+          m touch /tmp/no-bitcoinon
+        fi
+      fi
+      active=true
+      m ser stop bitcoind
+    fi
+    m rm /var/lib/bitcoind/wallets
+    if $active; then
+      m ser start bitcoind
+      if ! $no_on; then
+        m rm /tmp/no-bitcoinon
+      fi
+    fi
+  fi
+}
 #### end bitcoin related things
 
 
index 2913ade8479dfaa2a943327497ea968c00f867fe..02e5a89f72edb7642862b5aae2839fbc4fc065ce 100755 (executable)
@@ -631,7 +631,7 @@ case $HOSTNAME in
       dnsb8
     fi
 
-    s /c/roles/prom_export/files/simple/usr/local/bin/fsf-install-node-exporter -l 127.0.0.1
+    sudo /c/roles/prom_export/files/simple/usr/local/bin/fsf-install-node-exporter -l 127.0.0.1
 
     # ex for exporter
     web-conf -p 9101 -f 9100 - apache2 ${HOSTNAME}ex.b8.nz <<'EOF'
@@ -2216,18 +2216,14 @@ esac
 case $HOSTNAME in
   sy|kd)
     sudo install -m 0755 -o root -g root -t /usr/bin /a/opt/bitcoin-26.0/bin/*
-    sgo bitcoind
+    # Note: i leave it to system-status to start and stop bitcoin.
     # note: the bitcoin user & group are setup in fai
     sudo usermod -a -G bitcoin iank
     # todo: make bitcoin have a stable uid/gid
-    if [[ ! $(readlink -f /var/lib/bitcoind/wallets) == /q/wallets ]]; then
-      mkdir -p /var/lib/bitcoind
-      chown bitcoin:bitcoin /var/lib/bitcoind
-      # 710 comes from the upstream bitcoin unit file
-      chmod 710 /var/lib/bitcoind
-      s lnf /q/wallets /var/lib/bitcoind
-      sudo chown -h bitcoin:bitcoin /var/lib/bitcoind/wallets
-    fi
+    sudo mkdir -p /var/lib/bitcoind
+    sudo chown bitcoin:bitcoin /var/lib/bitcoind
+    # 710 comes from the upstream bitcoin unit file
+    sudo chmod 710 /var/lib/bitcoind
     # note, there exists
     # /a/bin/ds/disabled/bitcoin
     ;;
index d9528735bd9d16eabd98d991b6516699af3f7179..c4d9907bca0042a43902d25697c09556d6794da4 100755 (executable)
@@ -1,4 +1,7 @@
 #!/bin/bash
 [[ $EUID == 0 ]] || exec sudo "${BASH_SOURCE[0]}"
 
+if [[ -e /tmp/no-bitcoinoff ]]; then
+  exit 0
+fi
 systemctl stop bitcoind
index d62e41375a2a61db848101d46580986ee2306197..50f72b04a6053652fe3d5620057ba8f861479030 100755 (executable)
@@ -1,4 +1,7 @@
 #!/bin/bash
 [[ $EUID == 0 ]] || exec sudo "${BASH_SOURCE[0]}"
 
+if [[ -e /tmp/no-bitcoinon ]]; then
+  exit 0
+fi
 systemctl start bitcoind
index f204796b25c3ebf50f0195f09f3f0d8305c62db4..7a6c5623cf2758e95230507d098983251df0679b 100755 (executable)
@@ -29,6 +29,11 @@ d() {
   fi
 }
 myreboot() {
+  if [[ -e /tmp/myupgrade-noreboot ]]; then
+    e "would rebooted but /tmp/myupgrade-noreboot exists"
+    return
+  fi
+
   for x in {30..1}; do
     echo "pid $$. unattended upgrade, rebooting in $((x*10)) seconds" | wall -n 2>/dev/null
     sleep 10
index abfa7186ea020421993f7980565aed26a476b21f..d605d370ca0b865144d81329d89257a259ed69c0 100644 (file)
--- a/prof-tail
+++ b/prof-tail
@@ -1,6 +1,10 @@
 #!/bin/bash
 set -e; . /usr/local/lib/bash-bear; set +e
 
+# kill 0 doesn't seem to be documented in man bash, but it kills the
+# background processes.
+# https://unix.stackexchange.com/questions/67532/what-does-kill-0-do-actually/67552
+trap "kill 0" EXIT
 
 xmpp_users=(
   anoukr
@@ -41,6 +45,6 @@ while true; do
           $logdir/rooms/*/$log_today 2>/dev/null \
     | awk '$3 != "iank:"' | grep -i '\biank\b' | awk '{print $3; fflush()}' | sed 's/^/room /;s/@.*//' ||:
 
+  kill %
   sleep 1
-
 done
index 7a87e6beb5c834c2418834c8931434330207e22e..0e63964a78c519d1e5c1f0462fed7848ecc9d290 100755 (executable)
@@ -462,7 +462,7 @@ main-loop() {
         case $bat in
           100|9?)
           :
-          #bitcoinon &
+          bitcoinon &
           ;;
         esac
       fi