MagicMirror: Error when I run npm start on fresh raspbian stretch install

When I run npm start on a fresh install on raspbian stretch install i get the following in the debug file.

0 info it worked if it ends with ok 1 verbose cli [ ‘/usr/local/bin/node’, ‘/usr/bin/npm’, ‘start’ ] 2 info using npm@3.10.10 3 info using node@v4.2.1 4 verbose run-script [ ‘prestart’, ‘start’, ‘poststart’ ] 5 info lifecycle magicmirror@2.1.3~prestart: magicmirror@2.1.3 6 silly lifecycle magicmirror@2.1.3~prestart: no script for prestart, continuing 7 info lifecycle magicmirror@2.1.3~start: magicmirror@2.1.3 8 verbose lifecycle magicmirror@2.1.3~start: unsafe-perm in lifecycle true 9 verbose lifecycle magicmirror@2.1.3~start: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/home/pi/MagicMirror/node_modules/.bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games 10 verbose lifecycle magicmirror@2.1.3~start: CWD: /home/pi/MagicMirror 11 silly lifecycle magicmirror@2.1.3~start: Args: [ ‘-c’, ‘sh run-start.sh’ ] 12 silly lifecycle magicmirror@2.1.3~start: Returned: code: 1 signal: null 13 info lifecycle magicmirror@2.1.3~start: Failed to exec start script 14 verbose stack Error: magicmirror@2.1.3 start: sh run-start.sh 14 verbose stack Exit status 1 14 verbose stack at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:255:16) 14 verbose stack at emitTwo (events.js:87:13) 14 verbose stack at EventEmitter.emit (events.js:172:7) 14 verbose stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14) 14 verbose stack at emitTwo (events.js:87:13) 14 verbose stack at ChildProcess.emit (events.js:172:7) 14 verbose stack at maybeClose (internal/child_process.js:818:16) 14 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5) 15 verbose pkgid magicmirror@2.1.3 16 verbose cwd /home/pi/MagicMirror 17 error Linux 4.9.59-v7+ 18 error argv “/usr/local/bin/node” “/usr/bin/npm” “start” 19 error node v4.2.1 20 error npm v3.10.10 21 error code ELIFECYCLE 22 error magicmirror@2.1.3 start: sh run-start.sh 22 error Exit status 1 23 error Failed at the magicmirror@2.1.3 start script ‘sh run-start.sh’. 23 error Make sure you have the latest version of node.js and npm installed. 23 error If you do, this is most likely a problem with the magicmirror package, 23 error not with npm itself. 23 error Tell the author that this fails on your system: 23 error sh run-start.sh 23 error You can get information on how to open an issue for this project with: 23 error npm bugs magicmirror 23 error Or if that isn’t available, you can get their info via: 23 error npm owner ls magicmirror 23 error There is likely additional logging output above. 24 verbose exit [ 1, true ]

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 1
  • Comments: 43 (18 by maintainers)

Most upvoted comments

@E3V3A I don’t know where you see that I want to run it as root?! I want to run it as no login and no shell user (e.g. “magicmirror”). If you are asking because I added magicmirror to group sudo, that was for testing purposes.

I agree and know that it’s totally insecure running it as root user. I just want another user than “pi”. I don’t want to use the user “pi” as a user at all - if possible. I don’t want to use the root user and I never said so in any previous comment.

I’ll try to investigate further. Will report my findings back (if I find any).

April 1st the next master will be released. So if you can just wait a little bit longer … 😉

@d-Rickyy-b Yeah, MM should not be installed in root owned directories! Any directory above /home/pi/ is considered owned by root, AFAICR. There is absolutely no good reason, I can think of, to run MM as root.

But, this issue is important for people on other machines than RPi’s, where default user has a different name and directories have different root permissions.

Hmm, yeah, IDK why people would try to install MM on a non-gui (no-X) machine, unless they start out from scratch trying to do serveronly install. Two other things:

  1. After you do git clone ..., the run-start.sh script is not executable:
-rw-r--r-- 1 pi pi 142 Jan  6 01:58 run-start.sh
  1. There is no shebang in the script and electron is not in the path, unless provided a new PATH before execution.
  2. DISPLAY of course is not well defined if not running in GUI mode.
# cat run-start.sh
if [ -z "$DISPLAY" ]; then #If not set DISPLAY is SSH remote or tty
        export DISPLAY=:0 # Set by default display
fi
electron js/electron.js $1

well, i guess that was 3. Not sure how much this would influence, but surely worth looking into.