Ситуация следующая. Есть код на tcl, который соединяется по телнету с удаленным хостом (на хосте linux) и выполняет там команду.. Все это проходит в два этапа: сначала выполняется соединение, его id кладется в глобальную область видимости. Затем этот id используется для других команд. Проблема вот в чем: само соединение проходит отлично. Затем пытаюсь выполнить команду и забрать вывод. И вылетаю с таймаутом, хотя и с полученным выводом... Но неприятно, вылетает ошибка. Причем проблема эта наблюдается не везде. Локализовать проблему в зависимости от удаленной ОС не получилось... код выполнения команды:
| Код | send -i $id "$cmd\r" ;# $id - соединение, $cmd - команда. в моем случае это wc -l filename
expect { -i $id -re $Prompt { append buf $expect_out(buffer) return $buf } full_buffer { append buf $expect_out(buffer) exp_continue }
timeout { ;# ВОТ СЮДА МЕНЯ ПОСТОЯННО ВЫВАЛИВАЕТ! expect -i $id * append buf $expect_out(buffer) send_error "EXECMD2: command timeout -- $timeout sec\n" return $buf }
default { expect -i $id * send_error "Command: Unknown Error!\n" send_error "Buffer: $expect_out(buffer)\n" return $expect_out(buffer) }
}
|
в чем может быть проблема? какие уточняющие подробности нужны? |