Por que não alterar o teste systemctl status postgresql
no script de backup para algo assim?
...
if systemctl is-active postgresql
then
echo "PostgreSQL is active in non-clustered mode"
# add here any pre-backup commands specific to non-clustered mode
elif systemctl is-active postgresqlHA
then
echo "PostgreSQL is active in HA mode"
# add here any pre-backup command specific to HA mode
else
echo "PostgreSQL backup FAILURE: PostgreSQL is not running." >&2
# add any commands to send a backup failure alert here if necessary
exit 69 # EX_UNAVAILABLE
fi
# commands to run the backup here
...
Observe que systemctl status <service...>
foi projetado principalmente para uso interativo. para scripts, systemctl is-active <service...>
ou systemctl is-failed <service>
pode ser mais conveniente. Se você listar vários serviços, os comandos retornarão um código de resultado 0 se pelo menos um serviço satisfizer a condição.
Se você não precisa se preocupar com qual versão do serviço está sendo executada, você pode testá-los ao mesmo tempo:
...
if ! systemctl is-active postgresql postgresqlHA
then
echo "PostgreSQL backup FAILURE: neither clustered or non-clustered service is running." >&2
exit 69 # EX_UNAVAILABLE
fi
# commands to run the backup here
...