Получение ошибки EBUSY: ресурс занят или заблокирован - PullRequest
3 голосов
/ 09 марта 2019

Попытка запустить приложение 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 и переустановки узловых модулей.

Пожалуйста, помогите мне решить эту проблему.

Ответы [ 2 ]

6 голосов
/ 10 марта 2019

На GitHub есть много ответов по этому вопросу.

  • Некоторые говорят, что npm cache clean эта команда, выполняемая на терминале, решила проблему.

  • Другие рекомендуют удалить весь каталог, в котором находится ваше приложение, и переустановить пакеты, а затем попробовать запустить программу.

  • Некоторые также говорят, что это вызвано антивирусным программным обеспечением и рекомендуют отключать его во время работы программы.

Ссылка на проблему GitHub: https://github.com/npm/npm/issues/13461

Если этоне решает проблему, просто измените вывод GPIO, скажем, 23 в кодировании, и не забудьте физически заменить светодиод с 4 на 23.

2 голосов
/ 10 марта 2019
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();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...