MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Create another PM2 Script?

    Scheduled Pinned Locked Moved Troubleshooting
    7 Posts 2 Posters 3.1k Views 1 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D Offline
      Damian
      last edited by

      Hello, can someone please help me figuire out where to place a PM2 Script please?

      I am following the guide to put on MMM-Sonos, and cannot fathom out the directions to create another PM2 Script, can someone tell me what the instructions mean? Is this a command line? as I cannot find a directory named sonos.sh file contents

      create another pm2 script named sonos.sh in ~ directory
      cd ~
      sonos.sh file contents:
      cd ~/node-sonos-http-api
      DISPLAY=:0 npm start
      
      pm2 start sonos.sh
      pm2 start mm
      pm2 save
      
      

      the first part I have done, and see the web browser with sonos related text, so indeed, that hard bit has been done… just lost in the wording above as to what I should do, and where to do it?

      pi@magicpi:~ $ git clone https://github.com/jishi/node-sonos-http-api.git
      
      cd node-sonos-http-api
      npm install --production
      npm start
      
      verify, open a browser, point to your MM’s IP like so:
      http://192.168.0.207:5005/zones
      you should see a page full of sonos related text, if so the hard part is done…
      

      Thank you

      D 1 Reply Last reply Reply Quote 0
      • D Offline
        Damian @Damian
        last edited by

        Okay, so I opened up my directory… created a new file in /home/pi and named it sonos.sh… going by the jumbled up way things have been written in the example above, I have tried every combination to try and make sense of what it is saying to type into terminal

        cd ~ sonos.sh file contents
        sonos.sh

        I will no doubt be going around in circles here trying to decypher the instructions, so can I ask anyone to please decypher this for me and tell me what and where to enter these? do I manually input them into the sonos.sh file? do I get terminal to enter them?
        I a
        l already set up PM2 over a year ago to autostart MM, and sure it was never as hard as this?

        this is what I get when trying

        pi@raspi:~ $ cd ~sonos.sh
        bash: cd: ~sonos.sh: No such file or directory
        pi@raspi:~ $ sonos.sh
        bash: sonos.sh: command not found
        pi@raspi:~ $ sonos.sh file contents:
        bash: sonos.sh: command not found
        pi@raspi:~ $ cd ~/node-sonos-http-api
        pi@raspi:~/node-sonos-http-api $ DISPLAY=:0 npm start
        
        > sonos-http-api@1.6.0 start /home/pi/node-sonos-http-api
        > node server.js
        
        2018-04-16T11:21:47.702Z INFO Could not find file /home/pi/node-sonos-http-api/settings.json
        2018-04-16T11:21:48.670Z INFO Presets loaded: { example: 
           { players: 
              [ { roomName: 'Bathroom', volume: 10 },
                { roomName: 'Kitchen', volume: 10 },
                { roomName: 'Office', volume: 10 },
                { roomName: 'Bedroom', volume: 10 },
                { roomName: 'TV Room', volume: 15 } ],
             playMode: { shuffle: true, repeat: 'all', crossfade: false },
             pauseOthers: false } }
        2018-04-16T11:21:54.317Z ERROR Port 5005 seems to be in use already. Make sure the sonos-http-api isn't 
            already running, or that no other server uses that port. You can specify an alternative http port 
            with property "port" in settings.json
        
        npm ERR! Linux 4.9.35-v7+
        npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "start"
        npm ERR! node v6.14.1
        npm ERR! npm  v3.10.10
        npm ERR! code ELIFECYCLE
        npm ERR! sonos-http-api@1.6.0 start: `node server.js`
        npm ERR! Exit status 1
        npm ERR! 
        npm ERR! Failed at the sonos-http-api@1.6.0 start script 'node server.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 sonos-http-api package,
        npm ERR! not with npm itself.
        npm ERR! Tell the author that this fails on your system:
        npm ERR!     node server.js
        npm ERR! You can get information on how to open an issue for this project with:
        npm ERR!     npm bugs sonos-http-api
        npm ERR! Or if that isn't available, you can get their info via:
        npm ERR!     npm owner ls sonos-http-api
        npm ERR! There is likely additional logging output above.
        npm ERR! Please include the following file with any support request:
        npm ERR!     /home/pi/node-sonos-http-api/npm-debug.log
        pi@papaspi:~/node-sonos-http-api $ pm2 start sonos.sh
        [PM2][ERROR] script not found : /home/pi/node-sonos-http-api/sonos.sh
        script not found : /home/pi/node-sonos-http-api/sonos.sh
        ┌──────┬──────┬────────┬───┬─────┬────────┐
        │ Name │ mode │ status │ ↺ │ cpu │ memory │
        ├──────┼──────┼────────┼───┼─────┼────────┤
        │ mm   │ fork │ online │ 0 │ 0%  │ 0 B    │
        └──────┴──────┴────────┴───┴─────┴────────┘
         Use `pm2 show ` to get more details about an app
        pi@raspi:~/node-sonos-http-api $
        D 1 Reply Last reply Reply Quote 0
        • D Offline
          Damian @Damian
          last edited by

          @Mods

          Appreciate I have posted this twice in 2 seperate posts - but other one is FAO the Developer in his original post of 1 year ago, and to the poster who replied with his fix.

          This post goes to anyone here who can help me with making and executing a script, going by the example given for this module.

          1 Reply Last reply Reply Quote 1
          • bheplerB Offline
            bhepler Module Developer
            last edited by bhepler

            Okay, a couple things. sono.sh is your script that starts your process. ~ is the shortcut to the pi user’s home directory, also known as /home/pi. In order to run scripts from the command line, you have to precede the script name with ./

            So let’s take a moment to verify the state of your pi. Change to the home directory and pull up the file list with a couple switches to see if sonos.sh exits:

            pi@raspi:~ $ cd ~
            pi@raspi:~ $ ls -lh sonos.sh
            -rwxr-xr-x 1 pi pi 26 April 15 11:50 sonos.sh
            

            There will be some variation in your results. If you see the phrase “No such file or directory”, then the file does not exist at that location. Also, you may not have any “x” entries when you do see the file listed. If so, the file is not marked executable, so it won’t run. You can fix this by typing chmod +x sonos.sh

            I’m a little unclear as to what commands exactly are in your sonos.sh file. Could you please enter cat sonos.sh and reply with the results?

            Adding the script to pm2 is done by typing pm2 start sonos.sh. You can then verify that pm2 has picked it up by typing pm2 status all. That will give you a list of the processes that pm2 is controlling. You should see both your mm.sh process and your sonos.sh process.

            Give that a go and report back to us.

            D 1 Reply Last reply Reply Quote 1
            • D Offline
              Damian @bhepler
              last edited by Damian

              @bhepler

              Thanks so much for your help on this as it was doing my head in…

              Ok… I entered everything exactly as you stated above… and found everything you stated… and then it worked - Thank you so much for that, I sincerely appreciate your help on this.

              Can I ask you one more favour please?

              Going by the instructions I followed above, which made no sence to me in the format it was written… can I ask you what your simple instructions would be to complete that part? In a more understandable format than what is written above, and how it is written.

              This would help others understanding how to make that PM2 Script, and not confuse them, and would also educate me on how I should have done it.

              Thanks again.

              create another pm2 script named sonos.sh in ~ directory
              cd ~
              sonos.sh file contents:
              cd ~/node-sonos-http-api
              DISPLAY=:0 npm start
              
              pm2 start sonos.sh
              pm2 start mm
              pm2 save
              
              
              bheplerB 1 Reply Last reply Reply Quote 0
              • bheplerB Offline
                bhepler Module Developer @Damian
                last edited by bhepler

                @Damian Sure, I can do that. Let me re-write this a bit.

                Step 1 - Create a script called sonos.sh in the home directory (~).

                cd ~
                nano sonos.sh
                

                Enter the following in the nano editor for the contents of your sonos.sh script:

                cd ~/node-sonos-http-api
                DISPLAY=:0 npm start
                

                Save the file and exit the nano editor.

                Step 2 - Make your script executable by entering chmod +x sonos.sh

                Step 3 - Tell pm2 to manage your sonos script so that it is always running in the background:

                pm2 start sonos.sh
                pm2 save
                

                Verify that pm2 is managing both your sonos.sh script and the mm.sh script by typing pm2 status all. You should see two lines, one for each script.

                Step 4 - Clear the logs and bounce your mirror and verify that everything works as planned.

                pm2 flush
                pm2 restart all
                
                D 1 Reply Last reply Reply Quote 3
                • D Offline
                  Damian @bhepler
                  last edited by

                  @bhepler

                  Thanks very much for that, appreciated.

                  Inclusion of nano will help as that was not mentioned.

                  1 Reply Last reply Reply Quote 0
                  • 1 / 1
                  • First post
                    Last post
                  Enjoying MagicMirror? Please consider a donation!
                  MagicMirror created by Michael Teeuw.
                  Forum managed by Sam, technical setup by Karsten.
                  This forum is using NodeBB as its core | Contributors
                  Contact | Privacy Policy