Как узнать процесс файла

Для чего служит команда lsof

Относительно lsof справка man как раз сообщает, что lsof есть сокращение от LiSt of Open Files, и что утилита эта служит для вывода информации о том, какие файлы используются теми или иными процессами. Причем утилита эта имеется в очень многих версиях и диалектах UNIX, включая Linux версии 2.1.72 и выше, а также в HP-UX, AIX, NextStep, Apple Darwin для Power Macintosh, SCO UnixWare, Solaris, FreeBSD, NetBDS, OpenBSD и так далее.

Создателем программа lsof является Victor A. Abell, его домашняя страничка расположена по адресу http://people.freebsd.org/

Если запустить эту утилиту без параметров, выдается информация о всех работающих процессах и открытых ими файлах. Даже в моей системе с одним пользователем эта команда выдала 2344 строки текста. Попробуй проанализируй эту массу информации! Но давайте взглянем хотя бы на несколько строк ее вывода, чтобы на этом примере понять, какую же информацию она выдает.

А теперь смотрим листинг 1 (или результат работы программы на вашем экране).

Листинг 1. Вывод команды lsof.

Номер файлового дескриптора сопровождается символом, указывающим режим, в котором файл был открыт:

В последнем случае за дефисом следует еще один символ, определяющий тип блокировки (подробнее смотри man lsof ).

Вслед за типом указывается устройство, на котором расположен файл, размер файла, номер индексного дескриптора и имя файла.

Опции команды

выдаст данные о всех открытых UNIX-сокетах и всех файлах, принадлежащих процессам, запущенным пользователем “kos”.

будет выведен список файлов, принадлежащих ЛИБО пользователю “fff”, ЛИБО пользователю “ggg” И имеющих сетевые соединения ЛИБО к хосту aaa.bbb ЛИБО к хосту ccc.ddd.

Опции команды lsof можно записывать одну за другой без пробелов, предваряя это список всего одним дефисом, то есть вместо

можно указать просто

Однако при этом надо побеспокоиться о том, чтобы не было неоднозначности в интерпретации опций. Но я не буду детально рассматривать возможные причины неоднозначности, если у вас возникает желание использовать эту возможность, смотрите соответствующую man-страницу.

в выводе lsof будет присутствовать идентификатор процесса (p), имя команды (c), файловый дескриптор (f) и ися файла.

Применение команды lsof

Не имеет смысла повторять в статье описание всех опций этой команды, имеющееся на страничке man. Давайте ограничимся тем, что рассмотрим ее применение и использование наиболее употребительных опций на примерах конкретных ситуаций.

Пример 1. Кто работает с файлом или каталогом?

Начнем с решения той проблемы, которая была описана в начале статьи, и которая рассматривалась в упомянутой выше статье С.Лапшанского [2]. Итак, вы попытались размонтировать CD-ROM (захотели сменить диск). А в ответ получили сообщение “Device is busy”. Это означает, что какой-то процесс открыл файл, расположенный на этом устройстве. А чтобы узнать, какие файлы открыты в том или ином каталоге, служит опция +d команды lsof. Поэтому, чтобы узнать, кем занят диск, дайте команду следующего вида:

(у меня CD-ROM монтируется в каталог /mnt/cdrom). В ответ я получил такое сообщение:

Как видите, сразу становится ясно, что дисковод используется пользователем kos, причем, видимо, какой-то подкаталог каталога /mnt/cdrom открыт в одной из панелей файлового менеджера Mifnight Commander (mc).

Надо отметить, что при использовании опции +d dir выдается информация только о тех файлах и подкаталогах, которые содержатся в самом каталоге dir, а не в его подкаталогах. Для решения рассматриваемой проблемы этого вполне достаточно, потому что если обычно в выводе команды указан и файл данного каталога. Но, если вы все же захотите получить список всех открытых файлов во всех вложенных подкаталогах каталога dir, надо воспользоваться опцией +D. Попробуем, например, посмотреть, какие файлы открыты в каталоге /var/ и всех его подкаталогах. В работающей системе всегда найдутся открытые файлы из этого каталога, поэтому на этом примере очень наглядно демонстрируется разница между опциями +d и +D:

(Упомяну для точности, что символические ссылки игнорируются и поэтому в выводе этой команды не перечисляются.)

Пример 2. Какой процесс использует данный файл?

Приведенный пример очень похож на предыдущий, только вы получаете сведения о процессах, использующих конкретный файл.

Пример 3. Какие ресурсы использует процесс?

Вы уже видели в листинге 1, что каждый процесс открывает несколько файлов. Но когда я выполнил команду

Пример 4. С какими файлами работает пользователь?

Следующий вариант запуска той же команды:

позволяет вывести список файлов, открытых всеми процессами, запущенными пользователями, чье имя или идентификатор содержится в списке names. Отдельные элементы списка разделяются запятыми, например, ”548,root” (пробелов быть не должно).

Пример 5. Кто подключился к вашему компьютеру?

На листинге 2 показан результат выполнения этой команды на компьютере trend в моей домашней сети, состоящей всего из двух компьютеров.

Порты, которые открыты для входящих соединений, обозначены меткой LISTEN. Метка ESTABLISHED показывает, что по данному порту соединение установлено. В листинге 2 вы можете видеть пример двух SSH-сессий. Первая сессия установлена хостом old-lin.home.kos с компьютером trend.home.kos. Она обслуживается процессом с PID 2192, который был порожден основным демоном sshd, PID 727. Процесс с PID 2464, наоборот, соответствует соединению, установленному клиентской программой ssh на компьютере trend.

Вместо “protocol” в параметре может стоять либо TCP, либо UDP (либо ничего).

Чтобы сказанное стало понятнее, приведем несколько простых примеров.

В этом случае будет выдан список всех процессов, прослушивающих или установивших соединение через порт 80.

В этом примере будут перечислены все соединения, ассоциированные с почтовым протоколом SMTP.

В третьем случае будет выдан список всех входящих и исходящих соединений с хостом rus-linux.net.

Эта команда покажет, какие процессы установили UDP-соединения с хостом rus-linux.net через порт 123 (ntp).

Очевидно, что указание параметра adress полезно только в том случае, когда вы заранее знаете, что именно вам нужно искать. Вы можете таким образом проверить, например, что какой-то конкретный сервис фактически работает и какой порт он прослушивает. Вы можете увидеть, подключился ли кто-то извне к вашему компьютеру по таким протоколам как SSH, Telnet, FTP или другим возможным способом.

Пример 6. Кто открыл файлы по NFS?

Пример 7. Наблюдаем за процессом копирования

Предположим, что вы решили переместить из одного каталога в другой большое количество файлов (или большой каталог целиком). И вы хотите видеть, какой именно файл перемещается в данный момент. Тут вам и может помочь утилита lsof. Для этого достаточно дать команду примерно такого вида (в этом примере предполагается, что перемещаются куда-то файлы из каталога Photo):

При этом нужно иметь в виду, что команда lsof делает как-бы “мгновенный снимок”, отображающий только лишь состояние процессов и соответствующих файлов в момент ее выполнения. Так что для “наблюдения за процессом” надо повторять ее запуск многократно. И в таком случае может оказаться полезной опция +r, которая служит для периодического повторения запуска команды через заданный промежуток времени.

Заключение

Мы рассмотрели только малую часть возможностей этой утилиты. Более подробную информацию ищите на соответствующей man-страничке.

Источник

Expert Users

Для того, чтобы узнать какой процесс открыл и блокирует доступ к файлу в Windows нам поможет программа Process Explorer. Эта прога отображает все работающие процессы и позволяет просмотреть загруженные DLL файлы и отрытые хэндлы для любого процесса.

Итак, для того чтобы узнать какой процесс блокирует файл, вам нужно:
1) скачать программу Process Explorer на сайте microsoft (размер около 1.5 Мб)

3) ввести имя заблокированного файла, который нужно найти. Будет показан список всех процессов, которые используют этот файл.
Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файла

Если вам известны другие методы как узнать какой процесс блокирует доступ к файлу, пишите в комментариях.

Похожие записи:

Комментарии к записи “ Как узнать какой процесс открыл и блокирует доступ к файлу в Windows? ”

Статья оказалось бесполезной. Мне нужно было выяснить какая программа блокимрует базу данных Microsoft SQLServer Compact (это файл с раширением sdf). Ничего не находится таким способом.

Анатолий, попробуйте программу unlocker.

Microsoft SQLServer – это база данных, которая запускается как Windows Service. Вам необходимо остановить процесс MS SQL Server (как-то так должен называться) и только потом сможете воздействовать на файл БД. Есть еще способы, но про них лучше почитать на MSDN.

Я же написал Compact и про файл sdf!
Никакой это не сервис.

Бесполезняк.
Залочены скомпилированные явой классы. Воткнул имя класса – не показывает.

Источник

Узнайте, какой процесс блокирует файл или папку в Windows

Как узнать, какой процесс блокирует файл или папку в Windows?

Например, при попытке удалить папку Windows сообщает об этом:

Действие не может быть выполнено, потому что папка открыта в другой программе

Случается то же самое с файлом, но как узнать, какая программа или приложение в настоящее время его использует и не позволяет мне удалить файл или папку?

9 ответов

Если это не очевидно, когда вы нашли дескриптор, вы можете определить процесс, посмотрев на столбец Image и /или PID.

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файла

N.B. WhoLockMe, похоже, не работает с Win 10 (по крайней мере, мне не удалось зарегистрировать его ни в одной из 32- или 64-разрядных версий regsvr32.exe).

Вы когда-нибудь задавались вопросом, какая программа имеет определенный файл или каталог? Теперь вы можете это выяснить.

Чтобы узнать, какой процесс использует определенный файл, выполните следующие действия:

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файла>

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файла

Это бесплатный инструмент для удаления файлов, заблокированных тем, что вы не знаете. LockHunter полезен для борьбы с вредоносными программами и другими программами, которые блокируют файлы без причины. В отличие от других подобных инструментов, он удаляет файлы в корзину, чтобы вы могли их восстановить, если они были удалены по ошибке.

EMCO UnlockIT может идентифицировать процесс, который заблокировал файл, а также разблокировать файл, чтобы вы может удалить /отредактировать /переместить его. Программа полностью бесплатна, хотя более новая версия немного медленнее и более раздутой, чем оригинал (у которого был простой, неподтвержденный графический интерфейс, но загружался практически мгновенно и без раздражающего заставки). Кроме того, оригинальная версия используется для автоматического всплытия всякий раз, когда вы вызываете ошибку, которая позволяет вам мгновенно разблокировать файл и выполнить операцию, которую вы пытаетесь выполнить.

Вот мое открытие & Решение.

Кстати, ни один из вышеперечисленных ответов не решил мою проблему.

Я даже пытался использовать UNLOCKER, который оказался бесполезным.

Моя проблема была в том, что Memeo Autosync Backup

По-видимому, этот процесс резервного копирования оставляет достаточно «файла-призрака». Этот «призрак, как файл», будет отображаться всякий раз, когда я буду ALT-TAB на моем компьютере (Windows Professional XP), то есть я увижу, что в моей TASK BAR запускаются две программы MS Excel, когда я только ОДИН был видимым.

Я столкнулся с этим решением, когда подумал, что это могла быть защита SYMANTEC Endpoint (Anti-Virus); и отключил программу. Однако я продолжал получать сообщение об ошибке:

невозможно удалить (файл LARGE.xls): он используется другим человеком или программой. Закройте все программы, которые могут использовать этот файл, и повторите попытку.

Впоследствии я продолжал видеть уведомление Memeo о «синхронизации» и ВЫКЛЮЧИТЬ программу.

Для вас это может быть ЛЮБОЙ из этих фоновых сейвов.

Если вы не знаете программу, которую он использует, вы можете перейти в «Мой компьютер»; щелкните правой кнопкой мыши; выберите «Управление». В разделе «Системные инструменты»> Общие папки> Откройте файлы, вы сможете увидеть пользователя, который заблокировал файл. Здесь вы можете закрыть файл, а затем выполнить задачу переименования или удаления файла. Надеюсь, что это поможет

Дополнительная возможность, просто чтобы сэкономить людям время, которое я потратил:

Измените право собственности на Администраторов, и вам хорошо идти.

Источник

Как узнать процесс файла

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файлаПрофиль | Отправить PM | Цитировать

——-
there is no smoke without fire.

» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>

Сообщения: 7
Благодарности: 0

——-
there is no smoke without fire.

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файла

Сообщения: 830
Благодарности: 3

——-
Знание некоторых принципов нередко возмещает незнание некоторых фактов. Гельвеций

» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файла

Сообщения: 830
Благодарности: 3

——-
Знание некоторых принципов нередко возмещает незнание некоторых фактов. Гельвеций

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файла

Сообщения: 36125
Благодарности: 6545

» width=»100%» style=»BORDER-RIGHT: #719bd9 1px solid; BORDER-LEFT: #719bd9 1px solid; BORDER-BOTTOM: #719bd9 1px solid» cellpadding=»6″ cellspacing=»0″ border=»0″>

Сообщения: 3306
Благодарности: 102

Источник

Обозреватель процессов v 16.43

По пометке Russinovich)

Опубликовано: 18 августа 2021 г.

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файласкачать обозреватель процессов(2,5 МБ)
Запустите сейчас из Sysinternals Live.

Введение

Когда-нибудь интересует, какая программа открывает определенный файл или каталог? Теперь вы можете узнать. В обозревателе процессов отображаются сведения о том, какие дескрипторы и процессы DLL были открыты или загружены.

уникальные возможности обозревателя процессов позволяют отслеживать проблемы с версиями библиотек DLL или утечки, а также предоставлять сведения о том, как Windows и приложения работают.

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файла

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файла

Связанные ссылки

Скачать

Как узнать процесс файла. Смотреть фото Как узнать процесс файла. Смотреть картинку Как узнать процесс файла. Картинка про Как узнать процесс файла. Фото Как узнать процесс файласкачать обозреватель процессов(2,5 МБ)
Запустите сейчас из Sysinternals Live.

Выполняется в:

Установка

Просто запустите Обозреватель процессов (procexp.exe).

Примечание об использовании символов

Если путь настроен на DBGHELP.DLL и путь к символам использует сервер символов, расположение DBGHELP.DLL также должно содержать SYMSRV.DLL, поддерживающих используемые пути к серверу. См. документацию по SymSrv или дополнительные сведения об использовании серверов символов.

Дополнительные сведения

Ниже приведены некоторые другие средства просмотра и сведения о библиотеках DLL, доступные в Sysinternals:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *