Как быстро определить, какой процесс (если есть) слушает последовательный порт

Я ищу команду, чтобы увидеть процесс, слушающий порт, например /dev/ttyS0 (с правами root в системе Linux). Я могу сделать это с

lsof /dev/ttyS0

но это действительно слишком медленно. Кроме того, я не могу использовать -p флаг, чтобы сделать это быстрее.

Я хотел бы сделать то же самое, используя другие ресурсы системы Linux. Это возможно?

2 ответа

Я только попробовал это с виртуальной консолью, но это будет работать (по крайней мере для некоторых ресурсов. У меня нет последовательного порта, но он работал для моего tty's)

Фьюзер -n файл / dev / ttyS0

(Как корень, конечно)

Точно так же вы можете искать вещи, говорящие с сокетом, с помощью fuser -n tcp|udp XXXX

Я знаю, что уже поздно, но для будущего использования. Если lsof (с правами root) занимает слишком много времени, причина может заключаться в том, что он пытается разрешить имена хостов, когда открыто большое количество портов tcp / udp. Этого можно избежать, используя опцию -nsudo lsof -n /dev/ttyS0Если опция -n недоступна, вы можете попробовать опцию -Xsudo lsof -X /dev/ttyS0

Другие вопросы по тегам