Ваш shell - это один процесс, и у него есть значение для $?
. Ваш скрипт - это отдельный, дочерний процесс, и имеет собственное значение для $?
.
Если вы хотите иметь возможность проверить значение $?
, принадлежащее вашему shell, вам нужно, чтобы ваша команда выполнялась в процессе shell. source
- один из способов сделать это, но более простой способ - написать функцию.
function dummy(){
echo $?
}
Если она объявлена в пользовательском .bashrc
или эквиваленте, она должна быть доступна и работать так, как вы ожидаете.
(Если вы хотите, он может даже вызывать сценарий для выполнения любых других действий, и передавать ему значение $?
.)
.
HAProxy работает только с TCP, но не с UDP. Если у вас есть системы, которые могут отправлять сообщения системного журнала только с использованием UDP, вам нужно что-то другое, кроме HAProxy.
Одним из возможных вариантов является nginx -, в основном известный как веб-сервер, но это хороший прокси-сервер для многих различных служб, а также балансировка нагрузки UDP. Другой возможностью может быть использование агента кластеризации, такого как Corosync/pacemaker , для получения виртуального IP-адреса, который может перемещаться между двумя серверами по мере необходимости.