node.js - 出现 EBUSY 错误:资源繁忙或锁定
问题描述
尝试运行 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。
推荐阅读
- snowflake-cloud-data-platform - 在 Snowsight 中执行多个查询
- java - 找不到 colorpicker-0.0.13.aar (com.github.QuadFlask:colorpicker:0.0.13)
- sql - 如何找到合适尺寸的盒子?
- python-3.x - 具有混合格式的 pandas MultiIndex:将级别 0“%b-%Y”的格式更改为日期时间值
- python - Python:Pandas:Matplotlib:年复一年(x = 月,y = 每年的捐款)
- html - 如何从 Apple Font Book 嵌入字体
- c# - 如何使用 NEST 客户端为弹性搜索索引 Json 数据?
- c# - 是否有另一种方法可以根据 C# 中的派生类类型更改抽象类的静态方法的返回类型?
- python - 如何使用 pyodbc 从 Jupyter 读取 MS Access 数据库
- python - 为什么类属性并不总是作为键出现在实例的字典中?