Добрый день.
Ubuntu 10.10
У меня существует устройство /dev/ttyACM0
C этим устройством работает программа program, т.е. если сделать lsof /dev/ttyACM0, то выведется именно program
В какой то момент устройство перестает работать. Это случается если на него послать команду отличную от текущего протокола. Т.е. если во время работа program из другой консоли отправить echo "aaaa" > /dev/ttyACM0, то устройство перестает работать.
Так вопрос в том как отловить процесс, который отсылает какой то ввод на это устройство не по протоколу.
В бесконечном цикле lsof не получилось выявить процесс. Какие еще существуют варианты?
Либо возможно ли весь ввод на /dev/ttyACM0 логировать где-нибудь? По такому логу я бы смог отловить проблему.
Спасибо.
Процесс, который занимает устройство/файл
ИМХО правильное решение не писать в /dev/ttyACM0 мусор. далее решение зависит от деталей... если нужно запретить писать всем, кроме program, то это делается только правами.
ещё вариант: писать в трубу, а из неё специальный демон будет перегружать в устройство и мониторить корректность данных.
Fat-Zer, спасибо как избежать понятно. Но сейчас задача состоит все таки в том, чтобы отловить то, что туда пишет.
Wade, случайно ничего подобного Mobile Partner для подключения к 3G не установлено?
Lupo Alberto, почти угадали) Там есть скрипты, которые устанавливают связь через gprs, но на первый взгляд они исключают это устройство из списка своего коннекта.
Вот я и пытаюсь узнать, что посылается на устройство, ну или хотя бы каким процессом. Все это крутится на информационном киоске.
тогда, strace спасёт отца русской демократии.
тогда, strace спасёт отца русской демократии.
Можно, пожалуйста, примерно объяснить как с помощью strace это сделать? Почитав ман, не очень понятно как можно получить нужную мне информацию.
запускаете: strace <подозреваемый в записи в файл> и смотрите, что он пишет...
чтобы было меньше шума можно добавить -e trace=open,close,read,write
или вы даже подозреваемого не можете определить? я вообще не очень понимаю, что за тёмные дела и в какой тёмной системе вы творите...
запускаете: strace <подозреваемый в записи в файл> и смотрите, что он пишет...
чтобы было меньше шума можно добавить -e trace=open,close,read,write
или вы даже подозреваемого не можете определить?
Подозреваемых целый круг. smile
Конечно, хотелось бы вычислить обращения к файлу в который пишут. Но попробую, как вы написали. Спасибо