Как узнать, какой процесс использует файл в Linux?
Я попытался удалить файл в Linux с помощью rm -rf file_name
, но получил ошибку:
rm: file_name not removed. Text file busy
Как узнать, какой процесс использует этот файл?
2 ответов
можно использовать , например:
fuser file_name
вы получите список процессов, использующих файл.
вы можете использовать с ним разные флаги,чтобы получить более подробный вывод.
вы можете найти более подробную информацию в статья Википедии фьюзера или man
страницы.
@Джим правильно -- fuser
это то, что вы хотите.
кроме того (или поочередно), вы можете использовать lsof
чтобы получить больше информации, включая имя пользователя, в случае, если вам нужно разрешение (без необходимости запускать дополнительную команду), чтобы убить процесс. (Хотя, конечно, если вы хотите убить процесс,fuser
может сделать это с его . Вы можете иметь fuser
используйте другие сигналы с -s
опция -- проверьте man-страницу для подробности.)
например,tail -F /etc/passwd
запуск в одном окне:
ghoti@pc:~$ lsof | grep passwd
tail 12470 ghoti 3r REG 251,0 2037 51515911 /etc/passwd
обратите внимание, что вы также можете использовать lsof
чтобы узнать, какие процессы используют определенные сокеты. Отличный инструмент в вашем арсенале.