Shell Script прерывается в середине, когда не удается установить соединение с БД - PullRequest
1 голос
/ 17 мая 2019

У меня есть функциональный блок, как показано ниже, который вызывается откуда-то.Вызов происходит нормально, но при выполнении любой из следующих команд проверки psql, например:

local db_availability_check_88=`psql -h 10.95.187.88 -p 5444 -c "\pset tuples_only" -c "select pg_is_in_recovery;"|grep -v "Tuples"`

Сценарий немедленно завершается, если сценарий не может связаться с базой данных с помощью вышеуказанной команды psql.Я хочу, чтобы сценарий продолжил свое выполнение.Если не удается установить соединение, следует продолжить со следующими операторами.

check_db_status_function () {
    echo "entered function block db_status"
    local db_availability_check_67=`psql -h 10.95.167.87 -p 5444 -c "\pset tuples_only" -c "select pg_is_in_recovery;"|grep -v "Tuples"`
    local db_availability_check_68=`psql -h 10.95.167.88 -p 5444 -c "\pset tuples_only" -c "select pg_is_in_recovery;"|grep -v "Tuples"`
    local db_availability_check_69=`psql -h 10.95.167.89 -p 5444 -c "\pset tuples_only" -c "select pg_is_in_recovery;"|grep -v "Tuples"`

      if [[ ( $a1 = "down" ) && ( $a3 != "primary" ) && ( $db_availability_check_67 = 't' ) ]];
      then
      echo "pgPool services are down on the node:$a2"
      echo "Promoting..."
      /u01/edb/pgpool3.6/bin/pcp_attach_node -w -U pcpuser -h localhost -p 9898 $a0
      fi

Сценарий o / p выглядит следующим образом:

Nested block 1
check_db_stat
entered function block db_status
psql.bin: could not connect to server: Connection refused
        Is the server running on host "10.95.167.88" and accepting
        TCP/IP connections on port 5444?

Спасибо, Сандип

...