В программе для чтения данных с устройства посредством usb я считываю данные таким образом, просто stream поток перенаправляю в файл
root@splincode:$ stty 4800 -F /dev/ttyUSB0 && cat /dev/ttyUSB0 > stream/tty.txt
все данные постоянно пишутся в файлы tty.txt , и если я исполняю команду выше, то через терминал я уже ее никак не смогу отключить через ctrl+z/ctrl+c и другие. Суть в том, что пользователи вообще не будут использовать ведь терминал, убивать процесс я должен своей программой.
беда в том, что моей программе в отдельном потоке приходится запускать эту команду, чтобы в другом потоке я мог считать данные из файла tty.txt
но файл постоянно растет и может достигать больших размеров, я хотел бы сделать так, чтобы я мог в любой момент запустить команду выше и убить эти команды посредством kill
но когда в терминале я запускаю (все из под root):
root@splincode:$ ps aux
splinco+ 18157 0.3 1.2 871608 92860 ? Sl 12:47 0:05 /opt/google/chrome/chrome --type=renderer --enable-features=*AutofillCreditCardSigninPromo<AutofillCred
root 18315 0.1 0.0 0 0 ? S 12:51 0:01 [kworker/u8:1]
root 18397 0.0 0.0 0 0 ? S 12:54 0:00 [kworker/3:0]
root 18457 0.0 0.4 942988 30888 pts/1 Sl+ 12:56 0:00 node server.js
root 18463 0.0 0.0 4476 760 pts/1 S+ 12:56 0:00 /bin/sh -c ??stty 4800 -F /dev/ttyUSB0 && cat /dev/ttyUSB0 > stream/tty.txt
root 18465 0.0 0.0 12800 668 pts/1 S+ 12:56 0:00 cat /dev/ttyUSB0
root 18466 0.1 0.0 0 0 ? S 12:56 0:01 [kworker/u8:0]
root 18492 0.0 0.0 0 0 ? S 12:56 0:00 [kworker/2:1]
root@splincode:$ ps aux | grep stty
root 18463 0.0 0.0 4476 760 pts/1 S+ 12:56 0:00 /bin/sh -c ??stty 4800 -F /dev/ttyUSB0 && cat /dev/ttyUSB0 > stream/tty.txt
root@splincode:$ pidof stty # ничего не выводит
Но процесс надо как-то убивать, и я не знаю как
Сам процесс правда убивается, если вытащить usb-шнур и обратно вставить, но такой возможности у меня не может быть, для тех людей, которые будут использовать программу
Может есть эмуляция отключения usb и включения его обратно для /dev/ttyUSB0 ?