尝试运行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并重新安装节点模块来尝试修复。
请帮助我解决此问题。
答案 0 :(得分:6)
在GitHub上有很多关于此问题的答案。
有人说npm cache clean
在终端上执行此命令可以解决此问题。
其他建议删除应用程序所在文件夹的整个目录,然后重新安装软件包,然后尝试运行该程序。
也有人说这是由反恶意软件引起的,建议在运行程序时将其禁用。
GitHub问题链接:https://github.com/npm/npm/issues/13461
如果仍不能解决问题,只需将GPIO引脚更改为23(编码),不要忘记也将LED从4物理替换为23。
答案 1 :(得分:2)
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();
});
答案 2 :(得分:0)
有人说npm cache clean
此命令无法正常工作。
我们尝试卸载nodejs并重新安装nodejs
正常工作后
答案 3 :(得分:0)
在.expo
文件夹中找到 packager-info.json 文件并将其删除。现在,通过expo start
命令重新启动它。
答案 4 :(得分:0)
如果您在Windows上。
尝试以管理员身份运行bash窗口。
例如,在我的情况下,我使用的是git bash。
在Windows“ Gitbash”(或任何其他命令行窗口)上搜索->右键单击->以管理员身份运行。为我工作。
答案 5 :(得分:0)
我知道这是大麦的建议,因为它是如此明显,但我花了一个多小时才重新启动计算机,问题已解决!
提醒一下,最明显的解决方案有时是正确的解决方案。
关于此问题发布的所有其他解决方案均不适用于我。可能是因为我的问题是一个日志文件被锁定,这使我完全无法使用npm。日志文件甚至没有显示在应该位于的目录中。
答案 6 :(得分:0)
只需关闭所有内容,包括您的Visual Studio或正在使用的任何应用,然后重新开始服务或构建,您就可以使服务器运行
答案 7 :(得分:0)
当您尝试写入在编辑器中打开的文件时可能会出现此问题