Você pode escrever um script de wrapper que execute o serviço somente se a verificação de alias do DNS for aprovada. O valor a ser verificado pode ser passado como variável ambiental.
Arquivo de serviço:
[Service]
Environment=CONDITION_DNSALIAS=abc
Exec=/path/to/dnsaliascheck-wrapper exec args
...
Roteiro do Wrapper:
#!/bin/sh
check_dns_alias() {
# Your logic to check DNS alias here, return 0 for success and 1 otherwise.
return 0
}
if [ -z "$@" ]; then
echo "No arguments!"
return 1
fi
# If CONDITION_DNSALIAS is empty, the check should pass
if [ -z "$CONDITION_DNSALIAS" ] || check_dns_alias ; then
unset CONDITION_DNSALIAS
exec "$@"
fi
echo "DNS alias condition not met"
exit 0
Você precisa gravar a verificação real em check_dns_alias
, usando a variável CONDITION_DNSALIAS
para comparar.