#!/bin/bash set -o nounset # Check if directory for monit logs exists if [ ! -d "$HOME/.bigchaindb-monit" ]; then mkdir -p "$HOME/.bigchaindb-monit" fi monit_pid_path=${MONIT_PID_PATH:=$HOME/.bigchaindb-monit/monit_processes} monit_script_path=${MONIT_SCRIPT_PATH:=$HOME/.bigchaindb-monit/monit_script} monit_log_path=${MONIT_LOG_PATH:=$HOME/.bigchaindb-monit/logs} monitrc_path=${MONITRC_PATH:=$HOME/.monitrc} function usage() { cat <${monit_script_path} <> \$3/bigchaindb.out.log 2>> \$3/bigchaindb.err.log & echo \$! > \$2 popd ;; stop_bigchaindb) kill -2 \`cat \$2\` rm -f \$2 ;; start_tendermint) pushd \$4 nohup tendermint node --consensus.create_empty_blocks=false >> \$3/tendermint.out.log 2>> \$3/tendermint.err.log & echo \$! > \$2 popd ;; stop_tendermint) kill -2 \`cat \$2\` rm -f \$2 ;; esac exit 0 EOF chmod +x ${monit_script_path} # Handling overwriting of control file interactively if [ -f "$monitrc_path" ]; then echo "$monitrc_path already exists." read -p "Overwrite[Y]? " -n 1 -r echo if [[ $REPLY =~ ^[Yy]$ ]]; then echo "Overriding $monitrc_path/.monitrc" else read -p "Enter absolute path to store Monit control file: " monitrc_path eval monitrc_path="$monitrc_path" if [ ! -d "$(dirname $monitrc_path)" ]; then echo "Failed to save monit control file '$monitrc_path': No such file or directory." exit 1 fi fi fi # configure monitrc cat >${monitrc_path} <