Книга: UNIX: разработка сетевых приложений
В.7. Программа lsof
В.7. Программа lsof
Название lsof
происходит от «list open files» (перечислить открытые файлы). Как и tcpdump
, эта программа является общедоступной и представляет собой удобное средство для отладки, которое было перенесено на множество версий Unix.
Одним из общих способов применения программы lsof
при работе в сети является выявление процесса, имеющего открытый сокет, по указанному IP-адресу или порту. Программа netstat
позволяет выяснить, какой IP-адрес или порт используется, а также узнать состояние TCP-соединения, но она не позволяет идентифицировать процесс. Например, чтобы определить, какой процесс запустил сервер времени и даты, выполним следующую команду:
solaris % lsof -i TCP:daytime
COMMAND PID USER FD TYPE DEVICE SIZE/OFF INODE NAME
inetd 222 root 15u inet 0xf5a801f8 0t0 TCP *:daytime
В выводе приводятся следующие данные: команда (данный сервис обеспечивается сервером inetd
), идентификатор процесса, владелец процесса, дескриптор (15 и u означает, что он открыт на чтение и на запись), тип сокета, адрес протокола блока управления, размер смещения файла (не имеет значения для сокета), тип протокола и имя.
Еще один из традиционных случаев применения данной программы имеет место, когда мы запускаем сервер, который связывает свой заранее известный порт и получает ошибку, указывающую, что адрес уже используется. Тогда мы запускаем программу lsof
, чтобы выяснить, каким процессом используется данный порт.
Поскольку программа lsof
сообщает об открытых файлах, она не может сообщать о точках доступа, не ассоциированных с открытым файлом, то есть точках доступа TCP в состоянии TIME_WAIT.
ПРИМЕЧАНИЕ
Программа находится по адресу ftp://vic.cc.purdue.edu/pub/tools/unix/lsof. Она написана Виком Абелем (Vic Abell).
Некоторые поставщики предлагают свои программы с похожими возможностями. Например, в BSD/OS предлагается программа fstat. Однако программа lsof работает под множеством версий Unix, а использование одного инструмента в неоднородном окружении вместо подбора различных средств для каждой среды является большим преимуществом.
- 5.1.4. lsof
- lsof
- Получение сведений об установленных на компьютере программах
- В.5. Программа tcpdump
- В.6. Программа netstat
- Программа «Тайный покупатель»
- Программа Victoria
- Подпрограмма обработки прерывания
- Магическая программа, или Беспорядок по расписанию
- Что делать, если вместо русских букв в программах – непонятные символы?
- Как называется программа, которая устанавливает Windows за 5 минут?
- Программа shmget