Как узнать, какой процесс использует файл в 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 чтобы узнать, какие процессы используют определенные сокеты. Отличный инструмент в вашем арсенале.