Intereting Posts
почему ls сообщает об огромном файле, а нет? Выполнение правил udev при загрузке Ubuntu 13.04 не распознает USB-накопитель Linux VPS-хост с графическим интерфейсом с использованием RDP (не VNC) Получение электронной почты через IMAP и разбор сценария с минимальной задержкой Каков максимальный раздел, поддерживаемый в Linux? Переименовать часть нескольких файлов Почему GNU не работает с «bash -c»? Как установить зависимости предложений пакета Отсутствие вывода файла журнала при запуске скрипта под экраном, с перенаправлением консоли (тройник) Что такое Superblock, Inode, Dentry и файл? Установка linux на 32-битной машине UEFI Как точно знать, когда служба Linux неактивна? Настройка глобальных разрешений для просмотра для подкаталогов (rx), но делает файлы недоступными для всех, кроме владельцев и членов группы Можно ли использовать трубку вместо exec in – find / -name ".txt" -exec cp {} / junk \;

Найти процессы с открытым файлом без lsof или fuser

Я работаю на машине Linux (Scientific Linux CERN SLC, выпуск 6.9 (Carbon)), на которой я не могу установить программы и на которой lsof команды lsof или fuser .

Я пытаюсь удалить точечный файл NFS на этом компьютере, но постоянно получаю сообщение об ошибке « Device or resource busy поэтому я хотел бы выяснить, какой процесс (возможно, это тот процесс, который я ранее запускал с nohup ) все еще содержит файл дескриптор этого файла.

Как мне этого добиться?

Используйте /proc//fd .

Пример …. мы хотим выяснить, для какого pid открыт /var/log/audit/audit.log . fuser говорит нам, что это pid 255.

 [root@instance-1 ~]# fuser /var/log/audit/audit.log /var/log/audit/audit.log: 255 [root@instance-1 ~]# 

Итак, используя решение без fuser :

 [root@instance-1 ~]# find /proc/*/fd -ls|grep /var/log/audit/audit.log 188652 0 l-wx------ 1 root root 64 Jul 1 06:22 /proc/255/fd/5 -> /var/log/audit/audit.log [root@instance-1 ~]#