出现错误EBUSY:资源忙或锁定

Sye*_*bal 3 node.js npm raspberry-pi3

尝试运行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)
Run Code Online (Sandbox Code Playgroud)

这是我的应用代码

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();
});
Run Code Online (Sandbox Code Playgroud)

通过更新和升级apt并重新安装节点模块已尝试修复。

请帮助我解决此问题。

Muh*_*fil 6

GitHub上有很多关于此问题的答案。

  • 有人说npm cache clean在终端上执行此命令可以解决此问题。

  • 其他建议删除应用程序所在文件夹的整个目录,然后重新安装软件包,然后尝试运行该程序。

  • 也有人说这是由反恶意软件引起的,建议在运行程序时将其禁用。

GitHub问题链接:https : //github.com/npm/npm/issues/13461

如果仍不能解决问题,只需将GPIO引脚更改为23(编码),不要忘记也将LED从4物理替换为23。

  • @SyedMuhammadDanishIqbal 不要忘记物理上更改 LED 引脚 (2认同)

Yau*_*hen 6

当您尝试写入在编辑器中打开的文件时,可能会出现此问题