Read the statement by Michael Teeuw here.
Two Instances in PM2
-
Hi everyone.
Please help. I have two instances of mm starting on boot up. I donβt know what I did wrong. When pi starts the cpu is showing movement but doesnβt boot into mm. I have to type is pi pm2 stop mm. Then pm2 stop MagicMirror to stop the cpu usage. I go into cd MagicMirror and type npm start and my mirror starts. Control q and quits. But this isnβt the right way to do it. How and in what directory do I go into to delete pm2 as I have two instances. Thnx everyone. Appreciate all help. -
About 9 posts up from here are the directions on how to delete one instance on autostarting MM
-
@mykle1 hi againπ. Yep. I did do that and thatβs when both run in the background but none go to mirror mode. Then u suggested going into cd MagicMirror and running npm start and then it goes into mirror mode. I use control q to quit but I still have two instances. I need to delete both and reinstall but without losing my mirror and thatβs what I donβt know how to do. I want it back to boot up going straight to mirror mode and then just control q to quit then pm2 stop MagicMirror and pm2 start MagicMirror. Right now I have mm and MagicMirror. Iβm just at a lossβΉοΈ
-
@shazglass All right, weβll get you through it.
pm2 runs on Pi startup and will start your mirror process for you. There should be only one listing. If you ran the installation script and said βyesβ to using pm2, there should be only one process called MagicMirror in pm2.
To remove the
mm
process from pm2, enter the following:cd ~ pm2 stop all pm2 delete mm pm2 save rm mm.sh pm2 flush pm2 start MagicMirror
At this point, your Magic Mirror interface should appear after a minute or so. You can press
ctrl-q
to exit the Magic Mirror interface, but pm2 should bring it back up in short order. -
@bhepler hi there.
Thank you for the instructions. I did exactly as you said. It has taken away the βmmβ instance. I am left with only the MagicMirror one now. However. It will not boot Into mirror mode on start up, although I can see the CPU is being used, so I type pm2 stop MagicMirror and it shows that it has stopped. Only way I can get the mirror to show is by typing cd MagicMirror
Then in that directory I type npm start. It does a small load thing and then my mirror shows. How can I get it to how it should be without having to go into the mirror directory?
Thank you for your patience. Most appreciated! -
@shazglass - Hmm. I donβt know. It should be working normally at this point. Letβs try switching to the previous process. Weβll delete the one that the installer created, then add the one to your script.
First, we remove the existing process:
cd ~ pm2 delete MagicMirror pm2 save
Then we use your
mm.sh
script that you had earlier.pm2 flush pm2 start mm.sh pm2 save
At this point, your mirror should come up in about 30 seconds. If it does not, enter
pm2 log mm
and copy the results here. Be sure to use the forum markup tools to help format your log messages. -
@bhepler hithere
I did as per your instructions - except I dont know how to use the forum markup toolβ¦so just copied and pasted.
I now dont have any instances running? I can only access my mirror if i go ino cd MagicMirror and then type npm install.pi@raspberrypi:~ $ pm2 stop all
[PM2] Applying action stopProcessId on app [all](ids: 0)
[PM2] MagicMirror β
βββββββββββββββ¬βββββββ¬ββββββββββ¬ββββ¬ββββββ¬βββββββββ
β Name β mode β status β βΊ β cpu β memory β
βββββββββββββββΌβββββββΌββββββββββΌββββΌββββββΌβββββββββ€
β MagicMirror β fork β stopped β 6 β 0% β 0 B β
βββββββββββββββ΄βββββββ΄ββββββββββ΄ββββ΄ββββββ΄βββββββββ
Usepm2 show <id|name>
to get more details about an app
pi@raspberrypi:~ $ pm2 delete MagicMirror
[PM2] Applying action deleteProcessId on app [MagicMirror](ids: 0)
[PM2] MagicMirror β
ββββββββ¬βββββββ¬βββββββββ¬ββββ¬ββββββ¬βββββββββ
β Name β mode β status β βΊ β cpu β memory β
ββββββββ΄βββββββ΄βββββββββ΄ββββ΄ββββββ΄βββββββββ
Usepm2 show <id|name>
to get more details about an app
pi@raspberrypi:~ $ pm2 save
[PM2] Saving current process listβ¦
[PM2] Nothing to save !!!
[PM2] In this case we keep old dump file. To clear dump file you can delete it manually !
pi@raspberrypi:~ $ pm2 flush
[PM2] Flushing /home/pi/.pm2/pm2.log
[PM2] Logs flushed
pi@raspberrypi:~ $ pm2 start mm.sh
[PM2][ERROR] script not found : /home/pi/mm.sh
script not found : /home/pi/mm.sh
ββββββββ¬βββββββ¬βββββββββ¬ββββ¬ββββββ¬βββββββββ
β Name β mode β status β βΊ β cpu β memory β
ββββββββ΄βββββββ΄βββββββββ΄ββββ΄ββββββ΄βββββββββ
Usepm2 show <id|name>
to get more details about an app
pi@raspberrypi:~ $ pm2 save
[PM2] Saving current process listβ¦
[PM2] Nothing to save !!!
[PM2] In this case we keep old dump file. To clear dump file you can delete it manually !
pi@raspberrypi:~ $ pm2 start mm
[PM2][ERROR] script not found : /home/pi/mm
script not found : /home/pi/mm
ββββββββ¬βββββββ¬βββββββββ¬ββββ¬ββββββ¬βββββββββ
β Name β mode β status β βΊ β cpu β memory β
ββββββββ΄βββββββ΄βββββββββ΄ββββ΄ββββββ΄βββββββββ
Usepm2 show <id|name>
to get more details about an app
pi@raspberrypi:~ $ pm2 log mm
[TAILING] Tailing last 15 lines for [mm] process (change the value with --lines option)
[PM2][ERROR] No file to stream for app [mm], exiting.
pi@raspberrypi:~ $ pm2 log MagicMirror
[TAILING] Tailing last 15 lines for [MagicMirror] process (change the value with --lines option)
[PM2][ERROR] No file to stream for app [MagicMirror], exiting.
pi@raspberrypi:~ $ -
I did find this in the cd MagicMirror???
pi@raspberrypi:~/MagicMirror $ pm2 log MagicMirror
[TAILING] Tailing last 15 lines for [MagicMirror] process (change the value with --lines option)
/home/pi/.pm2/logs/MagicMirror-out.log last 15 lines:
/home/pi/.pm2/logs/MagicMirror-error.log last 15 lines:
0|MagicMir | at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
0|MagicMir | at Function.Module._load (internal/modules/cjs/loader.js:498:3)
0|MagicMir | at Module.require (internal/modules/cjs/loader.js:598:17)
0|MagicMir | at require (internal/modules/cjs/helpers.js:11:18)
0|MagicMir | Error: ENOENT: no such file or directory, open βpackage.jsonβ
0|MagicMir | at Object.fs.openSync (fs.js:660:18)
0|MagicMir | at Object.fs.readFileSync (fs.js:565:33)
0|MagicMir | at Object. (/home/pi/MagicMirror/js/app.js:15:32)
0|MagicMir | at Module._compile (internal/modules/cjs/loader.js:654:30)
0|MagicMir | at Object.Module._extensionsβ¦js (internal/modules/cjs/loader.js:665:10)
0|MagicMir | at Module.load (internal/modules/cjs/loader.js:566:32)
0|MagicMir | at tryModuleLoad (internal/modules/cjs/loader.js:506:12)
0|MagicMir | at Function.Module._load (internal/modules/cjs/loader.js:498:3)
0|MagicMir | at Module.require (internal/modules/cjs/loader.js:598:17)
0|MagicMir | at require (internal/modules/cjs/helpers.js:11:18) -
@shazglass - Ah. Okay, easy enough.
Youβre missing the
mm.sh
script. Iβm not sure how you had this registered in pm2 earlier, but we can fix it. Weβll use nano to create a newmm.sh
file:cd ~ nano mm.sh
This will give you a blank screen with the nano options at the bottom. Enter the following lines:
cd ~/MagicMirror DISPLAY=:0 npm start
When youβre done, hit
ctl+o
to save the file and thenctl+x
to exit nano. Then just like you did earlier, make your script executable by enteringchmod +x mm.sh
Before we go any further, we need to test your script. From the command line, enter
./mm.sh
Your mirror should start after 30 seconds or so. Try this and report back with any errors and behaviors. Also, please use the markup commands when posting code and logs (follow this link for a quick tutorial).