lsof хорош, когда нужно посмотреть, кто держит файл — вывод списком, дальше сам решаешь, что делать. fuser делает тот же поиск, но заточен сразу под действие: если устройство не размонтируется из-за “device is busy”, fuser не просто покажет PID, а по ключу тут же его прибьёт.
# кто держит файл или точку монтирования — с подробностями
fuser -v /mnt/data
# то же самое, но по всей файловой системе
fuser -vm /mnt/data
# убить все процессы, держащие /mnt/data (SIGKILL по умолчанию)
fuser -k /mnt/data
# убить мягко, с подтверждением на каждый процесс
fuser -ki -TERM /mnt/data
-v добавляет колонки USER, PID, ACCESS, COMMAND вместо голого списка PID — без него fuser выводит почти нечитаемую строку из одних номеров. -k шлёт SIGKILL, если не указано иное через -SIGNAL (например -HUP или -TERM), а -i заставляет спрашивать подтверждение перед каждым убийством — полезная страховка, когда файловую систему делят несколько процессов и часть из них лучше не трогать.
Типичный сценарий — зависший umount: lsof +D /mnt/data показывает виновника, а fuser -km /mnt/data сразу освобождает точку монтирования, не выписывая PID вручную для последующего kill.
#linux #sysadmin
