web-dev-qa-db-ja.com

「デバイスまたはリソースがビジー」を解消するにはどうすればよいですか?

私がしようとしました rm -rfフォルダ、「デバイスまたはリソースがビジー状態」になりました。

Windowsでは、これを解決するためにLockHunterを使用しました。 Linuxの同等機能は何ですか? (答えとして、単純な「ロック解除」メソッドを提供してください。 これ のような完全な記事ではありません。それらは有用ですが、私は現在ASimpleMethodThatWorks™にのみ興味があります)

250
ripper234

必要なツールはlsofで、これはlist open filesを表します。

これには多くのオプションがあるので、manページを確認してください。ただし、ディレクトリの下で開いているすべてのファイルを表示したい場合は、次のようにします。

_lsof +D /path
_

これは_/path_の下のファイルシステムで再帰的に実行されるため、大きなディレクトリツリーで実行する場合は注意してください。

どのプロセスがファイルを開いているかがわかったら、それらのアプリを終了するか、kill(1)コマンドを使用してそれらを強制終了できます。

255
camh

マウントの問題の結果である場合があるため、削除しようとしているファイルシステムまたはディレクトリをアンマウントします。

umount/path

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は、対応するエラーが発生した2番目の列の値で、8番目の列の内容です。
  7. 次に、フォルダまたはファイルを削除してみます。
12
user73011

私はこれと同じ問題を抱えており、@ camhの推奨事項から始まるワンライナーを構築しました:

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

awkコマンドはPIDSを取得します。 tailコマンドは、厄介な最初のエントリ「PID」を削除します。 -9 killでは、他の人がより安全なオプションを持っているかもしれません。

これは、NFSネットワークファイルシステムを持つサーバーで頻繁に発生します。ファイルは通常.nfs000000123089abcxyz

私の典型的な解決策は、ファイルの親ディレクトリの名前を変更するか移動して、1日か2日後に戻ってくると、ファイルは自動的に削除され、その時点でディレクトリを自由に削除できます。

これは通常、ソフトウェアライブラリをインストールまたはコンパイルしているディレクトリで発生します。

7
user5359531

自動テストでRAMディスクが作成されたときに、この問題が発生しました。他の回答で提案されているコマンドlsofおよびfuserは役に立ちませんでした。テスト後、マウントを解除してからフォルダを削除しようとしました。私はそれを取り除くことができなかったので私は長い間混乱していました-私は"Device or resource busy"を取得し続けました!

偶然、私はRAMディスクを取り除く方法を見つけました。 mountコマンドを実行したのと同じ回数、つまりSudo umount path

自動テストを使用して作成されたため、何度もマウントされ、テスト後に一度マウント解除するだけでは取り除けませんでした。そのため、何度も手動でアンマウントした後、最終的に再び通常のフォルダになり、削除することができました。

うまくいけば、これはこの問題に遭遇した他の誰かを助けることができます!

5
gloriphobia

上記のプラバトの質問を避けて、encfsプロセスを取り残したときにmacos High Sierraでこの問題が発生し、再起動すると解決しましたが、これは

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

プロセスとPIDを示しました(2列目)。

Sudo kill -15 pid-here

修正しました。

5
bil

サーバーにアクセスできる場合は、お試しください

サーバーからそのディレクトリを削除する

または、再度mountおよびmountを実行して、umount -l:通常のumountで問題が発生した場合は、レイジーumount。

私もこの問題を抱えていました

lsof +D path:出力しません

ps -ef:関連情報はありません

3