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