Код: Выделить всё
chat -S -r /tmp/report -t 5 -f script > /dev/ttyS2 < /dev/ttyS2Иногда скрипт зависает. chat в списке процессов не виден, команда перед ним выполнена, за ним - нет.
strace говорит следующее:
Код: Выделить всё
open("/dev/ttyS2", O_WRONLY|O_CREAT|O_TRUNC, 0666Если открыть зависший порт через picocom, то после закрытия терминала всё "отвисает" и strace показывает результат:
Код: Выделить всё
open("/dev/ttyS2", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 EAGAIN (Resource temporarily unavailable)Сам picocom открывает порт так:
Код: Выделить всё
open("/dev/ttyS2", O_RDWR|O_NONBLOCK) = 3Как я понимаю, зависает оболочка при попытке открыть ttyS2 чтобы перенаправить вывод chat.
Не понятно, почему open() не возвращает EAGAIN сразу и почему picocom открывает файл без проблем.
Что может мешать открытию ttyS2 и что можно сделать не переписывая chat?