#!/bin/bash # Source problem, check if the needed services are up. # Function to check each service status, if down, restart once function check_service() { STATUS="$(systemctl show -p SubState $1 | cut -d'=' -f2)" if [ "${STATUS}" != "running" ]; then echo "Service $1 is down. Restarting it now ..." systemctl restart ${1} else echo "Service $1 running okay" fi } #All services list #System declare -a services_system=("nginx" "postgresql@14-main") #Libeufin declare -a services_libeufin=("libeufin-nexus" "libeufin-sandbox") #Exchange declare -a services_exchange=("taler-exchange-aggregator" "taler-exchange-closer" "taler-exchange-httpd" "taler-exchange-secmod-cs" "taler-exchange-secmod-eddsa" "taler-exchange-secmod-rsa" "taler-exchange-secmod-rsa" "taler-exchange-transfer" "taler-exchange-wirewatch") #Merchant declare -a services_merchant=("taler-merchant-httpd") #Check and restart # System for i in "${services_system[@]}"; do check_service $i done # Libeufin for i in "${services_libeufin[@]}"; do check_service $i done # Exchange for i in "${services_exchange[@]}"; do check_service $i done # Merchant for i in "${services_merchant[@]}"; do check_service $i done