Ваша проблема в том, что ваша команда ping содержит -t 1
, чтобы сказать ping сдаться через 1 секунду. Это вызывает сигнал SIGALRM
, который ping не может отловить. (Возможно, это ошибка ping, но это не важно). Оболочка bash сообщает об этом как Alarm clock: 14
и прерывает процесс со статусом выхода 142
; 128 (это флаг "я поймал сигнал") + 14 (идентификатор SIGALRM).
Есть два способа справиться с этим:
1) Удалить -t 1
, чтобы SIGALRM не генерировался. Вместо этого ping завершится через (по моему опыту) 5 секунд и выдаст другой статус ошибки, чем вы сейчас видите; вероятно, 68, если указанный хост не может быть достигнут. В этом случае вы также можете добавить "-o" к вашему ping, чтобы он завершился, как только хост станет достижимым.
2) Выполните trap - SIGALRM
непосредственно перед командой ping, чтобы сказать оболочке игнорировать сигнал. 1-секундный тайм-аут все равно произойдет, и статус выхода будет 142
. По крайней мере, так было на iMac под управлением Yosemite (10.10.5), на котором я это пробовал.
Тема является частью заголовка (hdr
), поэтому вам нужно
doveadm fetch -u myUser hdr.subject ALL