[英]Getting Error EBUSY: resource busy or locked
尝试运行 Nodejs 应用程序来测试 Raspberry 3 B + Gpio Onoff 模块,但是当我尝试运行该应用程序时出现此错误
fs.js:114
throw err;
Error: EBUSY: resource busy or locked, write
at Object.writeSync (fs.js:568:3)
at Object.writeFileSync (fs.js:1199:26)
at new Gpio (/home/pi/Desktop/pitesting/node_modules/onoff/onoff.js:96:10)
at Object.<anonymous> (/home/pi/Desktop/pitesting/blink.js:3:7)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
这是我的应用程序代码
var onoff = require('onoff');
var Gpio = onoff.Gpio,
led = new Gpio(4, 'out'),
interval;
interval = setInterval(function () {
var value = (led.readSync() + 1) % 2;
led.write(value, function () {
console.log("Changed LED state to: " + value);
});
}, 2000);
process.on('SIGINT', function () {
clearInterval(interval);
led.writeSync(0);
led.unexport();
console.log('Bye, bye!');
process.exit();
});
已经尝试通过更新和升级 apt 并重新安装节点模块来修复。
请帮我解决这个问题。
关于这个问题,GitHub 上有很多答案。
有人说npm cache clean
这个在终端上执行的命令解决了这个问题。
其他人建议删除您的应用所在文件夹的整个目录并重新安装软件包,然后尝试运行该程序。
有些人还说这是由反恶意软件引起的,建议在运行程序时禁用它。
GitHub 问题链接: https : //github.com/npm/npm/issues/13461
如果它不能解决问题,只需将 GPIO 引脚更改为编码中的 23,并且不要忘记也将 LED 从 4 物理替换为 23。
var onoff = require('onoff');
var Gpio = onoff.Gpio,
led = new Gpio(4, 'out'),
interval;
interval = setInterval(function () {
var value = (led.readSync() + 1) % 2;
led.write(value, function () {
console.log("Changed LED state to: " + value);
});
}, 2000);
process.on('SIGINT', function () {
clearInterval(interval);
led.writeSync(0);
led.unexport();
console.log('Bye, bye!');
process.exit();
});
有人说npm cache clean
这个命令不能正常工作。
我们尝试卸载 nodejs 并重新安装 nodejs
正常工作后
在.expo
文件夹中找到packager-info.json文件并删除它。 现在通过expo start
命令重新启动它。
如果你在 windows 上。
尝试以管理员身份运行 bash 窗口。
例如,就我而言,我使用的是 git bash。
在 Windows“Gitbash”(或任何其他命令行窗口)上搜索 -> 右键单击 -> 以管理员身份运行。 为我工作。
我知道这是大麦的建议,因为它是如此明显,但我花了一个多小时,然后重新启动了我的电脑,问题解决了!
只是提醒一下,最明显的解决方案有时是正确的解决方案。
发布的有关此问题的所有其他解决方案对我都不起作用。 也许是因为我的问题是日志文件被锁定,这使我根本无法使用 npm。 日志文件甚至没有出现在它应该在的目录中。
只需关闭所有内容,包括您的 Visual Studio 或您正在使用的任何应用程序,然后再次启动 ng serve 或 ng build,您的服务器就会运行起来。
当您尝试写入在编辑器中打开的文件时,可能会出现此问题
该问题的另一个原因可能是您的 npm package 包含一个不存在的 package。 在我的例子中,我有一个私有存储库,它包含在我的 package.json 中 - 但它指向一个不存在的 git 标签/版本。 修复此错误并运行
npm install
(忽略任何错误)为我修复了它。 为了省事我跑了
npm ci
之后,但这可能是不必要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.