oio11: (Default)
[personal profile] oio11

Поиск и удаление заблокированных файлов в Linux

Иногда случается, что приложение или не запускается или работает нестабильно, из-за того, что некоторые файлы заблокированы другими процессами. Это может произойти когда нескольков клиентов используют один общий ресурс, например общая папка home смонтирована на нескольких компьютерах.

Для этих целей нам понадобятся утилиты lsof и lslk.

Рассмотрим пример на основе дистрибутива Ubuntu.

Инсталируем необходимые пакеты (должен быть подключен репозиторий universe) -

# sudo apt-get update
# sudo apt-get install lsof lslk

Теперь все необходимые нам инструменты присутствуют.

Для примера мы будем искать и удалять заблокированные файлы KDE сессий на общем хранилище, где храняться и смонтированы на локальные машины, домашние каталоги пользователей (NFS)


Итак запускаем lslk
# lslk
SRC PID DEV INUM SZ TY M ST WH END LEN NAME
(unknown) 1190 254,1 308115263 r 0 0 0 0 0 /mnt/homes (/dev/mapper/vg0-homes)
(unknown) 2294 254,1 308115263 r 0 0 0 0 0 /mnt/homes (/dev/mapper/vg0-homes)
(unknown) 2392 254,1 308115263 r 0 0 0 0 0 /mnt/homes (/dev/mapper/vg0-homes)
(unknown) 2397 254,1 308115263 r 0 0 0 0 0 /mnt/homes (/dev/mapper/vg0-homes)
lpd 3028 254,0 1212425 5 w 0 0 0 0 0 /var/run/lpd.pid
master 3187 254,0 262203 17 w 0 0 0 0 0 /var/spool/postfix/pid/master.pid
atd 3260 254,0 1212456 5 w 0 0 0 0 0 /var/run/atd.pid
(unknown) 3262 254,0 1212458 w 0 0 0 0 0 /var (/dev/mapper/vg0-var)
nmbd 14654 254,0 688137 32768 r 0 4 0 4 0 /var/lib/samba/public/unexpected.tdb
nmbd 14654 254,0 688148 696 r 0 4 0 4 0 /var/lib/samba/public/messages.tdb
nmbd 14654 254,0 1212429 6 w 0 0 0 0 0 /var/run/samba/public/nmbd.pid
smbd 14656 254,0 688138 8192 r 0 4 0 4 0 /var/lib/samba/public/locking.tdb
smbd 14656 254,0 688132 8192 r 0 4 0 4 0 /var/lib/samba/public/brlock.tdb
smbd 14656 254,0 688133 163840 r 0 4 0 4 0 /var/lib/samba/public/connections.tdb
smbd 14656 254,0 688147 188416 r 0 4 0 4 0 /var/lib/samba/public/sessionid.tdb
smbd 14656 254,0 688148 696 r 0 4 0 4 0 /var/lib/samba/public/messages.tdb
smbd 14656 254,0 1212430 6 w 0 0 0 0 0 /var/run/samba/public/smbd.pid
nmbd 14669 254,0 655876 32768 r 0 4 0 4 0 /var/lib/samba/users/unexpected.tdb
nmbd 14669 254,0 655875 696 r 0 4 0 4 0 /var/lib/samba/users/messages.tdb
nmbd 14669 254,0 1212448 6 w 0 0 0 0 0 /var/run/samba/users/nmbd.pid
smbd 14671 254,0 655870 8192 r 0 4 0 4 0 /var/lib/samba/users/locking.tdb
smbd 14671 254,0 655719 696 r 0 4 0 4 0 /var/lib/samba/users/brlock.tdb
smbd 14671 254,0 655718 57344 r 0 4 0 4 0 /var/lib/samba/users/connections.tdb
smbd 14671 254,0 655843 106496 r 0 4 0 4 0 /var/lib/samba/users/sessionid.tdb
smbd 14671 254,0 655875 696 r 0 4 0 4 0 /var/lib/samba/users/messages.tdb
smbd 14671 254,0 1212450 6 w 0 0 0 0 0 /var/run/samba/users/smbd.pid

Что интересно, в этом листинге первые четыре строки помечены как unknown
SRC PID DEV INUM SZ TY M ST WH END LEN NAME
(unknown) 1190 254,1 308115263 r 0 0 0 0 0 /mnt/homes (/dev/mapper/vg0-homes)
(unknown) 2294 254,1 308115263 r 0 0 0 0 0 /mnt/homes (/dev/mapper/vg0-homes)
(unknown) 2392 254,1 308115263 r 0 0 0 0 0 /mnt/homes (/dev/mapper/vg0-homes)
(unknown) 2397 254,1 308115263 r 0 0 0 0 0 /mnt/homes (/dev/mapper/vg0-homes)

Мы получили достаточно полную информацию в этом листинге, мы знаем какие файлы используются в нашей файловой системе (в нашем случае нас интересует /mnt/home), нам понадобятся PID процессов. Для более подробного вывода параметров обратитесь к документации lslk.
Итак мы видим, что четыре процесса используют какие-то файлы из /mnt/homes, попробуем найти файлы используемые этими процессами.

Для этого нам пригодится утилита lsof
# lsof -p 1190,2294,2392,2397
Выводом этой команды будет список всех файлов перечисленных процессов. Правда иногда мы можем не получить желаемого результата.

Тогда можно попробовать найти файл по номеру inode -
# find /mnt/homes -inum 308115263
/mnt/homes/home/foo/.qt/.qtrc.lock

Заблокированный файл найден, удаляем его
# rm -f /mnt/homes/home/foo/.qt/.qtrc.lock

Таким образом мы удалили все заблокированные файлы и можем запускать наше приложение снова.

Интересное на сайте:
http://greendail.ru/node/432

October 2025

S M T W T F S
   1234
567891011
12131415161718
19202122 232425
262728293031 

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 4th, 2026 02:05 pm
Powered by Dreamwidth Studios