Я попытался удалить файл в Linux с помощью rm -rf file_name
, но получил ошибку:
rm: file_name not removed. Text file busy
Как я могу узнать, какой процесс использует этот файл?
Вы можете использовать fuser
команду, например:
fuser file_name
Вы получите список процессов, использующих файл.
Вы можете использовать с ним разные флаги, чтобы получить более подробный вывод.
Дополнительную информацию можно найти в статье Википедии о фьюзере или на man
страницах.
fuser
реализации одинаковы или работают одинаково. Даже если-i
он определен в POSIX, конкретная реализация, которую вы используете, не обязательно имеет те же параметры, что описаны в статье в Википедии. Например, я использую AIX прямо сейчас, иfuser
доступный в этой системе параметр также не имеет этой-i
опции.fuser
ниlsof
у меня , ни у меня не работал гостевой виртуальный бокс. Этот ответ меня спас.Ответ @jim правильный -
fuser
это то, что вы хотите.Дополнительно (или в качестве альтернативы) вы можете использовать
lsof
для получения дополнительной информации, включая имя пользователя, если вам нужно разрешение (без необходимости запускать дополнительную команду), чтобы убить процесс. (Хотя, конечно, если вы хотите убить процесс, выfuser
можете сделать это с его-k
опцией. Вы можетеfuser
использовать другие сигналы с-s
опцией - подробности смотрите на странице руководства.)Например, при
tail -F /etc/passwd
запуске в одном окне:Обратите внимание, что вы также можете использовать,
lsof
чтобы узнать, какие процессы используют определенные сокеты. Отличный инструмент в вашем арсенале.источник
lsof | head -1
чтобы увидеть все заголовки.lsof | grep -E "PID|<your_process_name>"
показывает как 1-ю строку, так и процесс, который вы хотите запросить.Как показано на прилагаемом изображении:
источник
tree
что-нибудь из stdin? Если да, что он делает с этим вводом?tree
томlsof
. Насколько я понимаю,tree
не читает со стандартного ввода, поэтому выводlsof
будет отброшен при запускеlsof | tree ...
. Если это правильно, тоlsof | tree MyFold
это то же самоеtree MyFold
, что просто отображает содержимое, но не файлы, открытые каким-либо процессом.