Недавно я столкнулся с дизайном приложений Linux. Отступ приложения состоит в том, чтобы регистрировать фреймы Ethernet через dumpcap <> api в linux. Но они реализованы следующим образом:
- Создайте новый процесс, используя fork ()
Вызовите dumpcap <> в execl (), как показано ниже
a,execl("/bin/sh", "/bin/sh", "-c", dumpcap<>, NULL);
б. sudo dumpcap -i "eth0" -B 1 -b filesize:5 -w "/mnt/Test_1561890567.pcapng" -t -q
Они отправляют SIGTERM для завершения процесса
Проблема, с которой мы сталкиваемся сейчас, заключается в том, что когда мы запускаем команду из процесса после1184 или 1185 нет: файлы, тогда dumpcap останавливает запись в журнал. Процесс и поток являются живыми командами, которые мы видим в верхней команде.