错误:EBUSY:资源繁忙或锁定,rmdir

Posted

技术标签:

【中文标题】错误:EBUSY:资源繁忙或锁定,rmdir【英文标题】:Error: EBUSY: resource busy or locked, rmdir 【发布时间】:2019-08-08 07:40:14 【问题描述】:

在windows中执行以下步骤后出现错误:

    打开一个终端:npm run start:dev 打开另一个终端:ng build --watch

但是,它可以通过使用上述命令在 Mac 中运行。 package.json 的部分配置是:

"scripts": 
"ng": "ng",
"start:dev:prod": "ng build --prod && cd dist/ && node static/server.js",
"start": "node static/server.js",
"build:prod": "ng build --prod",
"test": "ng test --code-coverage",
"lint": "ng lint",
"e2e": "ng e2e",
"start:dev": "npm run build & cd dist/ & SET APP_ENV=dev & node static/server.js",
"build": "ng build"
,

错误日志:

Error: EBUSY: resource busy or locked, rmdir 'C:\AngularProject\dist'
Error: EBUSY: resource busy or locked, rmdir 'C:\Spring-Intern-Projects\wdpr-accounting-reference-client\dist'
at Object.rmdirSync (fs.js:701:3)

【问题讨论】:

您可以尝试的最简单的方法是关闭所有终端以摆脱阻止程序并重试。 是的。停止 AVG,它现在运行良好。 因为我是 cd'd 进入我正在运行命令的目录,所以该目录将永远忙碌。我无法在没有打开 shell 的情况下运行命令。 【参考方案1】:

如果上述所有解决方案都不起作用并且您使用的是 Windows PC,就像我的情况一样,最简单的做法是:

    windows键加上键盘上的R打开运行命令框并输入

    resmon.exe

    点击确定打开资源监视器

    在监视器中,导航到 CPU 选项卡 在搜索框中的Associated Handles下,将路径复制到相关文件或文件夹并粘贴到那里 点击搜索图标 您应该能够看到所有使用该文件或文件夹的程序 右键单击每个并结束进程

现在,继续您尝试对文件或文件夹执行的操作。就我而言,我在使用 react-create-app via npm 时遇到了问题。 更多信息在这里#117908

我只是希望它对某人有所帮助。

【讨论】:

我的问题是一些锁定的缓存文件夹。我用你的方法杀死了锁定它们的 git 进程并删除了文件夹。我不得不等待几秒钟,控制台看起来像是卡住了,直到它在一段时间后自行恢复 npm 安装过程。 @OmerLeshem 我很高兴它有帮助。看起来这些问题与 Windows 更相关。我没有在 Mac OS 上体验过。【参考方案2】:

您看到此错误的主要原因是程序出于某种原因锁定了文件夹。在一次关闭一个程序的同时测试命令可以帮助解决问题并让您知道哪个程序是罪魁祸首。

人们遇到的一个问题是 Windows 上的反恶意软件。您可以在此处阅读此主题:

https://github.com/npm/npm/issues/13461

如果链接在这里停止工作是最受好评的评论:

在 Windows 10 64 位操作系统中,我已通过卸载解决了此问题 反恶意软件。

触发此错误的另一种方法是,如果您正在运行npm run [command],同时 cd'd 进入其更改的目录。这发生在我身上,我关闭了每个程序,但它没有工作,但意识到我在 dist 文件夹中,需要删除和重建。这触发了 PowerShell 中的Error: EBUSY: resource busy or locked, rmdir 错误,并且每次都可以重现。

【讨论】:

我通过将目录更改为我试图删除的文件夹以外的其他内容解决了我的问题。【参考方案3】:

对于 Angular VsCode 用户:

检查您要删除的目录/文件夹是否在终端中打开。可能有多个终端实例,因此请检查您是否有任何终端实例.

更改在终端中打开的目录或终止该终端实例将解决问题。

【讨论】:

【参考方案4】:

由于缓存导致的这个问题,在终端中运行以下命令

npm cache verify

【讨论】:

【参考方案5】:

我能够解决我杀死 npm 和 Java 进程的问题。我在运行我的 Cordova run android 时遇到问题,因此杀死 npm 和 java 进程帮助我解决了这个问题。

【讨论】:

【参考方案6】:

这是通过覆盖一些 npm 来发生的,因此它会锁定您的源

解决方案(我所做的 npm cache clean 也不起作用,然后我删除了 package-lock 开始工作)

    只需删除 package-lock

    清理缓存。

    npm cache clean

    也清除缓存(可选)

    npm install --cache

【讨论】:

应该是公认的答案。像魅力一样解决了我的问题。【参考方案7】:

我遇到了同样的问题并找到了原因 - 项目位于同步和锁定 node_modules 文件夹的保管箱文件夹中。 我关闭了保管箱,它起作用了。

【讨论】:

【参考方案8】:

您可以删除以下文件夹,然后再试一次。为我工作。

C:\Users\username\AppData\Local\Temp\npm-xxxxxxxxxx\

【讨论】:

【参考方案9】:

有时(在其他情况下)它只是一个网络问题,我只是在使用 *** 做什么,以及它的工作。

【讨论】:

【参考方案10】:

在我的情况下,android studio 和 VSCode 是打开的。 关闭 android studio 有帮助。

【讨论】:

【参考方案11】:

解决这个问题的简单方法是:

    删除 Nuxt.js 项目上的 /dist 目录。 再次运行npm run generatenpm run build

【讨论】:

【参考方案12】:

node_modules 文件夹内容可能会造成驱动器上的坏扇区,为此驱动器使用碎片整理和优化软件可以减少此类问题。

【讨论】:

以上是关于错误:EBUSY:资源繁忙或锁定,rmdir的主要内容,如果未能解决你的问题,请参考以下文章

EBUSY:资源繁忙或锁定,lstat 'C:\hiberfil.sys'

vuejs - 来自 chokidar (C:\) 的错误:错误:EBUSY:资源繁忙或锁定,lstat 'C:\hiberfil.sys'

获取错误EBUSY:资源繁忙或已锁定

EBUSY:资源繁忙或锁定,重命名。

打开失败:EBUSY(设备或资源忙)

ORA-00054: 资源繁忙并使用指定的 NOWAIT 获取或超时已过期