Create another PM2 Script?



  • 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



  • 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 $


  • @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.



  • 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.



  • @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
    
    


  • @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
    


  • @bhepler

    Thanks very much for that, appreciated.

    Inclusion of nano will help as that was not mentioned.


 

292
Online

6.0k
Users

4.5k
Topics

37.1k
Posts