it-swarm-id.com

Bagaimana cara mengatasi "perangkat atau sumber daya sibuk"?

Saya mencoba untuk rm -rf folder, dan membuat "perangkat atau sumber daya sibuk".

Di Windows, saya akan menggunakan LockHunter untuk menyelesaikan ini. Apa yang setara dengan linux? (Tolong beri jawaban metode sederhana "buka ini", dan tidak menyelesaikan artikel seperti yang ini . Meskipun bermanfaat, saya saat ini tertarik hanya pada ASimpleMethodThatWorks ™)

250
ripper234

Alat yang Anda inginkan adalah lsof, yang merupakan kepanjangan dari daftar file yang terbuka.

Ini memiliki banyak opsi, jadi periksa halaman manual, tetapi jika Anda ingin melihat semua file yang terbuka di bawah direktori:

lsof +D /path

Itu akan muncul kembali melalui sistem file di bawah /path, Jadi berhati-hatilah melakukannya pada pohon direktori besar.

Setelah Anda tahu proses mana yang membuka file, Anda dapat keluar dari aplikasi tersebut, atau mematikannya dengan perintah kill(1).

255
camh

terkadang ini disebabkan oleh masalah pemasangan, jadi saya akan meng-unmount sistem file atau direktori yang Anda coba hapus:

umount/path

122
kip2

Saya menggunakan fuser untuk hal semacam ini. Ini akan mendaftar proses mana yang menggunakan file atau file dalam mount.

16
BillThor

Ini solusinya:

  1. Pergilah ke direktori dan ketik ls -a
  2. Anda akan menemukan .xyz file
  3. vi .xyz dan lihat apa isi file tersebut
  4. ps -ef | grep username
  5. Anda akan melihat konten .xyz di kolom 8 (baris terakhir)
  6. kill -9 job_ids - di mana job_ids adalah nilai kolom ke-2 dari konten yang menyebabkan kesalahan yang sesuai di kolom ke-8
  7. Sekarang coba hapus folder atau file tersebut.
12
user73011

Saya punya masalah yang sama, membangun satu-liner dimulai dengan rekomendasi @camh:

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

Perintah awk meraih PIDS. Perintah tail menghilangkan entri pertama yang sial: "PID". Saya menggunakan -9 on kill, orang lain mungkin memiliki opsi yang lebih aman.

Saya sering mengalami ini di server yang memiliki sistem file jaringan NFS. Saya berasumsi itu ada hubungannya dengan sistem file, karena file-file tersebut biasanya dinamai seperti .nfs000000123089abcxyz.

Solusi khas saya adalah mengubah nama atau memindahkan direktori induk file, lalu kembali lagi dalam satu atau dua hari dan file akan dihapus secara otomatis, di mana saya bebas untuk menghapus direktori.

Ini biasanya terjadi di direktori tempat saya menginstal atau mengkompilasi pustaka perangkat lunak.

7
user5359531

Saya mengalami masalah ini ketika tes otomatis membuat ramdisk. Perintah yang disarankan dalam jawaban lain, lsof dan fuser, tidak membantu. Setelah tes saya mencoba melepasnya dan kemudian menghapus folder. Saya benar-benar bingung sejak lama karena saya tidak bisa menghilangkannya - saya terus mendapatkan "Perangkat atau sumber daya sibuk"!

Secara tidak sengaja saya menemukan cara untuk menyingkirkan ramdisk. Saya harus meng-unmount-nya beberapa kali sama dengan ketika saya menjalankan perintah mount, mis. Sudo umount path

Karena fakta bahwa itu dibuat menggunakan pengujian otomatis, itu dipasang berkali-kali, karenanya mengapa saya tidak bisa menyingkirkannya hanya dengan meng-unmount setelah pengujian. Jadi, setelah saya unmount secara manual berkali-kali akhirnya menjadi folder biasa lagi dan saya bisa menghapusnya.

Semoga ini bisa membantu orang lain yang menemukan masalah ini!

5
gloriphobia

Mengupas pertanyaan Prabhat di atas, saya memiliki masalah ini di macos High Sierra ketika saya terdampar proses encf, me-reboot menyelesaikannya, tapi ini

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

Menunjukkan kepada saya proses dan PID (kolom dua).

Sudo kill -15 pid-here

memperbaikinya.

5
bil

Jika server Anda dapat diakses, Coba

Menghapus dir itu dari server

Atau, lakukan mount dan mount lagi, coba umount -l: lazy umount jika menghadapi masalah pada umount normal.

Saya juga punya masalah ini di mana

lsof +D path: tidak memberikan output

ps -ef: tidak memberikan informasi yang relevan

3