Read the statement by Michael Teeuw here.
NPM restart issue
-
Hi, i’ve had Magic Mirror up and running for a few days now and all was fine.
I added new module and now when i run NPM restart i get the following
> magicmirror@2.0.0 start /home/pi/MagicMirror > electron js/electron.js npm ERR! Linux 4.4.14-v7+ npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "restart" npm ERR! node v6.3.0 npm ERR! npm v3.10.3 npm ERR! code ELIFECYCLE npm ERR! magicmirror@2.0.0 start: `electron js/electron.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the magicmirror@2.0.0 start script 'electron js/electron.js'. npm ERR! Make sure you have the latest version of node.js and npm installed. npm ERR! If you do, this is most likely a problem with the magicmirror package, npm ERR! not with npm itself. npm ERR! Tell the author that this fails on your system: npm ERR! electron js/electron.js npm ERR! You can get information on how to open an issue for this project with: npm ERR! npm bugs magicmirror npm ERR! Or if that isn't available, you can get their info via: npm ERR! npm owner ls magicmirror npm ERR! There is likely additional logging output above. npm ERR! Please include the following file with any support request: npm ERR! /home/pi/MagicMirror/npm-debug.log **Sorry can't work out how to get it out of inline** I google this error and noticed that something similar was posted which referred to an Electron Quick start which i also ran which generate a similar error. heres the content of my nam-debug.log any thoughts? 0 info it worked if it ends with ok 1 verbose cli [ '/usr/bin/nodejs', '/usr/bin/npm', 'restart' ] 2 info using npm@3.10.3 3 info using node@v6.3.0 4 verbose run-script [ 'prerestart', 4 verbose run-script 'prestop', 4 verbose run-script 'stop', 4 verbose run-script 'poststop', 4 verbose run-script 'restart', 4 verbose run-script 'prestart', 4 verbose run-script 'start', 4 verbose run-script 'poststart', 4 verbose run-script 'postrestart' ] 5 info lifecycle magicmirror@2.0.0~prerestart: magicmirror@2.0.0 6 silly lifecycle magicmirror@2.0.0~prerestart: no script for prerestart, continuing 7 info lifecycle magicmirror@2.0.0~prestop: magicmirror@2.0.0 8 silly lifecycle magicmirror@2.0.0~prestop: no script for prestop, continuing 9 info lifecycle magicmirror@2.0.0~stop: magicmirror@2.0.0 10 silly lifecycle magicmirror@2.0.0~stop: no script for stop, continuing 11 info lifecycle magicmirror@2.0.0~poststop: magicmirror@2.0.0 12 silly lifecycle magicmirror@2.0.0~poststop: no script for poststop, continuing 13 info lifecycle magicmirror@2.0.0~restart: magicmirror@2.0.0 14 silly lifecycle magicmirror@2.0.0~restart: no script for restart, continuing 15 info lifecycle magicmirror@2.0.0~prestart: magicmirror@2.0.0 16 silly lifecycle magicmirror@2.0.0~prestart: no script for prestart, continuing 17 info lifecycle magicmirror@2.0.0~start: magicmirror@2.0.0 18 verbose lifecycle magicmirror@2.0.0~start: unsafe-perm in lifecycle true 19 verbose lifecycle magicmirror@2.0.0~start: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/home/pi/MagicMirror/node_modules/.bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games 20 verbose lifecycle magicmirror@2.0.0~start: CWD: /home/pi/MagicMirror 21 silly lifecycle magicmirror@2.0.0~start: Args: [ '-c', 'electron js/electron.js' ] 22 silly lifecycle magicmirror@2.0.0~start: Returned: code: 1 signal: null 23 info lifecycle magicmirror@2.0.0~start: Failed to exec start script 24 verbose stack Error: magicmirror@2.0.0 start: `electron js/electron.js` 24 verbose stack Exit status 1 24 verbose stack at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:242:16) 24 verbose stack at emitTwo (events.js:106:13) 24 verbose stack at EventEmitter.emit (events.js:191:7) 24 verbose stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14) 24 verbose stack at emitTwo (events.js:106:13) 24 verbose stack at ChildProcess.emit (events.js:191:7) 24 verbose stack at maybeClose (internal/child_process.js:852:16) 24 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:215:5) 25 verbose pkgid magicmirror@2.0.0 26 verbose cwd /home/pi/MagicMirror/config 27 error Linux 4.4.14-v7+ 28 error argv "/usr/bin/nodejs" "/usr/bin/npm" "restart" 29 error node v6.3.0 30 error npm v3.10.3 31 error code ELIFECYCLE 32 error magicmirror@2.0.0 start: `electron js/electron.js` 32 error Exit status 1 33 error Failed at the magicmirror@2.0.0 start script 'electron js/electron.js'. 33 error Make sure you have the latest version of node.js and npm installed. 33 error If you do, this is most likely a problem with the magicmirror package, 33 error not with npm itself. 33 error Tell the author that this fails on your system: 33 error electron js/electron.js 33 error You can get information on how to open an issue for this project with: 33 error npm bugs magicmirror 33 error Or if that isn't available, you can get their info via: 33 error npm owner ls magicmirror 33 error There is likely additional logging output above. 34 verbose exit [ 1, true ]
-
Does it work if you remove the module you recently added? If so, it’s not an npm nor electron problem. It’s the module, probably a bad configuration, either in the module settings, or in your config.js.
-
i don’t think it did, fortunately i backed up my RPI before i add the module so i’ll try a fresh install and see if that works.
I was adding back in the compliments module so i could put a happy birthday message on so had change the narrative in the compliments module.
-
OK so after a fresh install all seemed to work, i’ve just tried to log in via SSH from outside my network, and so i could see the mirror ran the server only mode command and it churns out this.
pi@Mirror:~/MagicMirror $ node serveronly Loading config ... WARNING! Could not find config. Please create one. Loading module helpers ... No helper found for module: helloworld. All module helpers loaded. Starting server op port 8080 ... Server started ... Sockets connected & modules started ... Ready to go! Please point your browser to: http://localhost:8080 Whoops! There was an uncaught exception... { Error: listen EADDRINUSE :::8080 at Object.exports._errnoException (util.js:1008:11) at exports._exceptionWithHostPort (util.js:1031:20) at Server._listen2 (net.js:1253:14) at listen (net.js:1289:10) at Server.listen (net.js:1385:5) at new Server (/home/pi/MagicMirror/js/server.js:17:9) at /home/pi/MagicMirror/js/app.js:121:17 at loadConfig (/home/pi/MagicMirror/js/app.js:45:4) at start (/home/pi/MagicMirror/js/app.js:107:3) at Object.<anonymous> (/home/pi/MagicMirror/serveronly/index.js:2:5) code: 'EADDRINUSE', errno: 'EADDRINUSE', syscall: 'listen', address: '::', port: 8080 } MagicMirror will not quit, but it might be a good idea to check why this happened. Maybe no internet connection? If you think this really is an issue, please open an issue on GitHub: https://github.com/MichMich/MagicMirror/issues
So could it be the act of running the Server only mode that causes the issue? as now i get all the same errors listed above when i try to run pm restart?
Just as a side note that despite getting the error it still let me log onto the mirror through safari on :8080
-
@mikmonken said in NPM restart issue:
pi@Mirror:~/MagicMirror $ node serveronly
Loading config …
WARNING! Could not find config. Please create one.That right there should be your clue … You have an error in your
'config.js'
. -
this is where i’m out of my depth then, does the fact that the mirror boots fine on RPI start up not mean that the config.js is OK?
I’m guessing not, but is there an easy way to debug? usually if the config.js file is wrong (say i get a comma out of place) then mirror just boots onto the default you’ve got a problem with the config.js screen check you have one page, which doesn’t happen with this error?
-
Actually, you can’t run both the default startup of the mirror, AND a serveronly. Once the mirror is up and running, just open a browser from wherever you are and load up the rpi’s address with the configured port. I believe you said that’s :8080. I guess I don’t understand why you are trying to also run serveronly …
-
Arrrr that’s Because I didn’t realise you could access Mirror through the browser without a running. And I hadn’t thought to test it out.
So I’m basically providing two conflicting commands that’s causing the error then. (In its most basic of explanations)
Thanks for your answers though. Do you ever sleep?
-
Sleep? Is there a definition for that? :)
To note: the npm process starts up Electron in kiosk mode on the rpi. Electron is simply a browser, which then loads the localhost address to MM². So if you know your rpi’s address on your network, you can load it up anywhere through a browser.
In case you haven’t seen it, I posted how my (development) setup is, and it hints at doing just that with a remote browser:
https://forum.magicmirror.builders/topic/265/my-setup-or-how-crazy-i-am