Запущено устройство Tun, могу ли я отправлять сигналы / события? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть интерфейс Tun, запускаемый процессом пользователя (root). Работает отлично. То, что я хочу сделать, это проверить входящие пакеты в поисках специального пакета, который запускает ожидающие процессы в «go» или «останавливает» или иным образом что-то делает.

Эти ожидающие процессы могут быть в ядре (sleep / select / poll) в ожидании прерывания сигналом или вращения чего-то другого.

Похоже, что есть способы сделать это (происходя из ядра: eventfd, используя signalfds, который я могу передавать между процессами) .

Но то, что я действительно хочу, это что-то вроде:

wait_process: открывает fd, связанный с интерфейсом tun, например:

fd = open("/dev/net/tunif")
...
s = wait_for_signal(fd)
if (s == SIGUSR1)
    // looks like the signal we were looking for, do stuff
else
    // CTRL-C from user maybe?

Есть ли что-то как это я могу сделать?

...