Как преодолеть «занятое устройство или ресурс»?

Я попытался rm -rf папку и получил «устройство или ресурс занят».

В Windows я бы использовал LockHunter для решения этой проблемы. Что такое эквивалент Linux? (Пожалуйста, дайте в качестве ответа простой метод «разблокировать этот», а не полные статьи, подобные этому . Хотя они полезны, меня сейчас интересует только ASimpleMethodThatWorks ™)

9 Solutions collect form web for “Как преодолеть «занятое устройство или ресурс»?”

Инструмент, который вы хотите, – lsof , что означает список открытых файлов .

У него есть много вариантов, поэтому проверьте справочную страницу, но если вы хотите увидеть все открытые файлы в каталоге:

 lsof +D /path 

Это будет проходить через файловую систему под /path , поэтому будьте осторожны, делая это на больших деревьях каталогов.

Как только вы узнаете, какие процессы открывают файлы, вы можете выйти из этих приложений или убить их командой kill(1) .

иногда это результат проблем с установкой, поэтому я отключил файловую систему или каталог, который вы пытаетесь удалить:

umount / path

Я использую fuser для такого рода вещей. Он будет перечислять, какой процесс использует файл или файлы в mount.

Вот решение:

  1. Зайдите в каталог и введите ls -a
  2. Вы найдете файл .xyz
  3. vi .xyz и посмотреть, что такое содержимое файла
  4. ps -ef | grep username
  5. Вы увидите содержимое .xyz в восьмом столбце (последняя строка)
  6. kill -9 job_ids – где job_ids – это значение второго столбца соответствующей ошибки, вызванное содержимым в восьмом столбце
  7. Теперь попробуйте удалить папку или файл.

У меня была эта же проблема, построил однострочный, начиная с рекомендации @camh:

 lsof +D log/ | awk '{print $2}' | tail -n +2 | xargs kill -9 

Команда awk захватывает PIDS. Команда tail избавляется от надоедливой первой записи: «PID». Я использовал -9 для убийства, у других могут быть более безопасные варианты.

У меня была эта проблема, когда автоматизированный тест создал ramdisk. Команды, предложенные в других ответах, lsof и fuser , не помогли. После тестов я попытался размонтировать его, а затем удалить папку. Я был очень смущен целую вечность, потому что я не мог избавиться от него – я продолжал получать «Устройство или ресурс занят» !

Случайно я узнал, как избавиться от ramdisk. Мне пришлось размонтировать его столько же раз, сколько я запускал команду mount , т. sudo umount path

Из-за того, что он был создан с использованием автоматизированного тестирования, он был установлен много раз, поэтому я не мог избавиться от него, просто отключив его один раз после тестов. Итак, после того, как я вручную размонтировал его много раз, он снова стал обычной папкой, и я мог удалить его.

Надеюсь, это поможет кому-то другому, кто сталкивается с этой проблемой!

Если у вас есть доступ к серверу, попробуйте

Удаление этого каталога с сервера

Или, снова включите и снова umount -l , попробуйте umount -l : lazy umount, если вы столкнулись с какой-либо проблемой при обычном umount.

У меня тоже была эта проблема, когда

lsof +D path : не дает выхода

ps -ef : не дает никакой информации

Я знаю, что это старый вопрос, но он может помочь кому-то с той же проблемой.

Когда вы используете файл где-то в другом месте (например, на другой вкладке), удаление папки, содержащей этот файл, приводит к использованию Device or resource busy -error.

Вы можете преодолеть эту ошибку, просто покинув программу, использующую файл.

Управляющее резюме:

  1. выйти; вернуться в
  2. убить идентификаторы процессов


пример

В то время как spack'ing вокруг, системный сбой оставил меня богатым с файлами эмуляции nfs. Команда umount недоступна.

Как отмечено @camh, lsof идентифицирует эти файлы. Обратите внимание, что есть несколько приложений.

 $ lsof +D . lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/23497/gvfs Output information may be incomplete. lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/2017/gvfs Output information may be incomplete. COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 78600 ******* cwd DIR 0,59 4096 3241308953 . bash 79827 ******* cwd DIR 0,59 4096 3241308953 . python 79876 ******* cwd DIR 0,59 4096 3241308953 . python 79876 ******* 5r REG 0,59 1880 3223241856 ./var/spack/repos/builtin/packages/py-pathos/.nfs00000000c01ec480000000f9 python 79876 ******* 7w REG 0,59 0 3231244662 ./var/spack/repos/builtin/packages/py-pathos/.nfs00000000c098e176000000fa python 80026 ******* cwd DIR 0,59 4096 3241308953 . python 80026 ******* 3r REG 0,59 8615 3223722769 ./lib/spack/spack/.nfs00000000c0261b11000000f4 python 80026 ******* 4r REG 0,59 34118 3240752943 ./lib/spack/spack/.nfs00000000c129f72f000000f7 python 80026 ******* 5r REG 0,59 9776 3237083633 ./lib/spack/external/yaml/lib/yaml/.nfs00000000c0f1f9f1000000f1 python 80026 ******* 7r REG 0,59 1132 3237083641 ./lib/spack/external/yaml/lib/yaml/.nfs00000000c0f1f9f9000000f2 python 80026 ******* 8r REG 0,59 9122 3234950705 ./lib/spack/external/yaml/lib/yaml/.nfs00000000c0d16e31000000f3 python 80213 ******* cwd DIR 0,59 4096 3241308953 . python 80253 ******* cwd DIR 0,59 4096 3241308953 . python 80253 ******* 3r REG 0,59 8615 3223722769 ./lib/spack/spack/.nfs00000000c0261b11000000f4 python 80253 ******* 4r REG 0,59 34118 3240752943 ./lib/spack/spack/.nfs00000000c129f72f000000f7 python 80253 ******* 5r REG 0,59 130070 3223690614 ./lib/spack/spack/.nfs00000000c0259d76000000f8 python 80253 ******* 7r REG 0,59 15336 3239387892 ./lib/spack/spack/compilers/.nfs00000000c11522f4000000f5 python 80253 ******* 8r REG 0,59 17377 3239387902 ./lib/spack/spack/.nfs00000000c11522fe000000f6 python 80253 ******* 9r REG 0,59 38690 3243144161 ./lib/spack/external/.nfs00000000c14e73e1000000f0 lsb_relea 80260 ******* cwd DIR 0,59 4096 3241308953 . lsb_relea 80260 ******* 3r REG 0,59 8615 3223722769 ./lib/spack/spack/.nfs00000000c0261b11000000f4 lsb_relea 80260 ******* 4r REG 0,59 34118 3240752943 ./lib/spack/spack/.nfs00000000c129f72f000000f7 lsb_relea 80260 ******* 5r REG 0,59 130070 3223690614 ./lib/spack/spack/.nfs00000000c0259d76000000f8 lsb_relea 80260 ******* 7r REG 0,59 15336 3239387892 ./lib/spack/spack/compilers/.nfs00000000c11522f4000000f5 lsb_relea 80260 ******* 8r REG 0,59 17377 3239387902 ./lib/spack/spack/.nfs00000000c11522fe000000f6 lsb_relea 80260 ******* 9r REG 0,59 38690 3243144161 ./lib/spack/external/.nfs00000000c14e73e1000000f0 chmod 80288 ******* cwd DIR 0,59 4096 3241308953 . lsof 81100 ******* cwd DIR 0,59 4096 3241308953 . lsof 81101 ******* cwd DIR 0,59 4096 3241308953 . 

После выхода из системы и обратно, отправляйте с ошибочными процессами в порядке @ user73011:

kill -9 78600 79827 79876

и так далее.

  • Как навсегда изменить разрешение файла / каталога
  • Делают ли файлы, открытые дочерними процессами, число против открытого файла для родительского процесса?
  • Должен ли я взять на себя права собственности / media, / mnt и / opt или присоединиться к группе root?
  • Мониторинг блокировок файлов, заблокированных с помощью стаи
  • Есть ли способ скомбинировать два файла?
  • Разделить файл F на M частей, восстановить файл F из N этих M частей
  • Как ограничить один пользовательский файл другим пользователем
  • Можно ли скопировать relpath в одну команду?
  • Почему размер inode исправлен?
  • Backticks не работают при инкапсулировании пути в кавычки
  • Почему доступ к страницам веб-сайтов запрещен Apache, если я не заменю их копиями?
  • Linux и Unix - лучшая ОС в мире.