Я написал небольшой скрипт для проверки состояния порта с помощью q.Он проверяет порты и запускает электронную почту, если в соединении отказано, что работает нормально.Затем я использовал дополнительный таймаут для порта, чтобы он не зависал там в ожидании.Хотя он возвращается с комментарием «тайм-аут», если порт отключен, он также, похоже, выбивает меня из функции и не попадает в часть sendemail [].
ProcessChecks:{[port]
V:{@[value;("hopen (`::",(string x),";5000)");enlist]} [port];
.keh.V:V; :
mail_body:(string V)," at .z.T time: ",(string .z.T);
.keh.mail:mail_body;
$[-6h=type V;"port accepted";SendEmail2[mail_body;"connection refused port: ",(string port)]];
Пространство имен .keh.mail
не изменяется и SendEmail2 [] не отправляется, что является просто командой unix mailx
.
Я получу .keh.V = "timeout"
.keh.mail = " at .z.T time whatever the time is"
5000 - время ожидания 5 секунд, и его введение вызывает проблему.