it-swarm-ko.tech

"장치 또는 리소스 사용률"을 극복하는 방법?

나는 rm -rf 폴더에 "장치 또는 리소스 사용 중"이 있습니다.

Windows에서는이 문제를 해결하기 위해 LockHunter를 사용했을 것입니다. 리눅스와 동등한 것은 무엇입니까? (답변으로 간단한 "잠금 해제"방법을 제공하고 this one 와 같은 기사를 완성하지 마십시오. 유용하지만, 현재 ASimpleMethodThatWorks ™에만 관심이 있습니다)

250
ripper234

원하는 도구는 lsof이며 목록 열기 파일을 나타냅니다.

많은 옵션이 있으므로 매뉴얼 페이지를 확인하십시오. 그러나 디렉토리 아래에 열려있는 모든 파일을 보려면 다음을 수행하십시오.

lsof +D /path

/path 아래의 파일 시스템을 통해 되풀이되므로 큰 디렉토리 트리에서 수행해야합니다.

어떤 프로세스가 파일을 열 었는지 알고 나면 해당 앱을 종료하거나 kill(1) 명령으로 종료 할 수 있습니다.

255
camh

때로는 마운트 문제의 결과이므로 제거하려는 파일 시스템이나 디렉토리를 마운트 해제합니다.

umount/경로

122
kip2

이런 종류의 일에 fuser를 사용합니다. 마운트 내에서 파일을 사용중인 프로세스를 나열합니다.

16
BillThor

해결책은 다음과 같습니다.

  1. 디렉토리로 이동하여 ls -a를 입력하십시오.
  2. .xyz 파일이 있습니다
  3. vi .xyz 파일의 내용을 확인하십시오
  4. ps -ef | grep username
  5. 8 번째 열 (마지막 행)에 .xyz 내용이 표시됩니다.
  6. kill -9 job_ids-여기서 job_ids는 해당 오류의 두 번째 열 값으로 인해 8 번째 열의 내용이 발생했습니다.
  7. 이제 폴더 나 파일을 삭제하십시오.
12
user73011

나는이 같은 문제가 있었고 @camh 권장 사항으로 시작하여 하나의 라이너를 만들었습니다.

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

awk 명령은 PIDS를 가져옵니다. tail 명령은 성가신 첫 번째 항목 "PID"를 제거합니다. 나는 -9 처치시 다른 옵션이 더 안전 할 수 있습니다.

NFS 네트워크 파일 시스템이있는 서버에서이 문제가 자주 발생합니다. 파일의 이름은 일반적으로 .nfs000000123089abcxyz.

내 일반적인 해결책은 파일의 부모 디렉토리 이름을 바꾸거나 이동 한 다음 하루나 이틀 후에 다시 파일을 자동으로 제거하는 것입니다.이 시점에서 디렉토리를 자유롭게 삭제할 수 있습니다.

이것은 일반적으로 소프트웨어 라이브러리를 설치하거나 컴파일하는 디렉토리에서 발생합니다.

7
user5359531

자동화 된 테스트에서 램 디스크를 만들 때이 문제가 발생했습니다. 다른 답변 인 lsoffuser에서 제안 된 명령은 도움이되지 않았습니다. 테스트 후 마운트를 해제 한 다음 폴더를 삭제하려고했습니다. 나는 그것을 없애지 못해 오랫동안 혼란스러워했다. 나는 계속 "Device or resource busy"!

우연히 나는 램 디스크를 제거하는 방법을 알아 냈습니다. mount 명령을 실행 한 횟수와 동일한 횟수로 마운트를 해제해야했습니다 (예 : Sudo umount path).

자동 테스트를 사용하여 생성 되었기 때문에 여러 번 마운트되었으므로 테스트 후에 한 번 마운트 해제만으로 제거 할 수없는 이유는 무엇입니까? 따라서 수동으로 여러 번 마운트를 해제하면 마침내 일반 폴더가되어 삭제할 수 있습니다.

이 문제를 겪고있는 다른 사람을 도울 수 있기를 바랍니다.

5
gloriphobia

위의 Prabhat의 질문에서 벗어나서 encfs 프로세스를 중단하고 재부팅하면 macos High Sierra 에서이 문제가 발생했습니다.

ps -ef | grep name-of-busy-dir

프로세스와 PID (2 열)를 보여주었습니다.

Sudo kill -15 pid-here

고쳤다.

5
bil

서버에 액세스 할 수있는 경우 시도하십시오

서버에서 해당 디렉토리 삭제

또는 mountmount을 다시 수행하고 umount -l : 정상적인 umount에서 문제가 발생하면 게으른 umount입니다.

나도이 문제가 있었다

lsof +D path : 출력하지 않습니다

ps -ef : 관련 정보가 없습니다

3