Touché! Ok, I understand now. I thought using pm2 involved a lot of tweaking. I was trying and failing to get it to read my npm dotenv. Instead of trying to use pm2 to call my app.js directly I have just realised I can use it to launch it indirectly via npm without having to change any config . Simples!
Thanks for your advice. On Thu, Sep 3, 2020 at 7:02 PM Stefan Hornburg (Racke) <[email protected]> wrote: > On 9/3/20 7:58 PM, Sebastian Collins wrote: > > I tried the command module before using the shell module. > > > > I thought the command module was the wrong choice because when I run it, > as below, it simply hangs. > > > > If I log on to the host I can see the ansible task has spawned the > node.js process but I suppose my playbook is hanging > > because it can't background it. > > > > Correct, npm doesn't do that. Use PM2. > > Regards > Racke > > > Any ideas how to do this because the documentation has left me none the > wiser. > > > > tasks: > > > > - name: execute startup script > > command: npm start app.js > > register: status > > args: > > chdir: "/apps/test/postcodes.io <http://postcodes.io>" > > > > - debug: > > var: status > > > > > > > > On Thu, Sep 3, 2020 at 5:52 PM Stefan Hornburg (Racke) <[email protected] > <mailto:[email protected]>> wrote: > > > > On 9/3/20 5:45 PM, Sebastian Collins wrote: > > > Thanks for your suggestion. PM2 actually looks really good. Great > monitoring metrics and ansible seems to > > > seamlessly invoke it no problem: > > > > > > - name: Task17 - start nodejs - Step1 of 3 - execute startup script > > > shell: pm2 start app.js > > > register: status > > > args: > > > chdir: "/apps/test/postcodes.io <http://postcodes.io> < > http://postcodes.io>" > > > > > > - debug: > > > var: status > > > ] > > > > > > > Use command instead of shell module. See documentation. > > > > > > > and provides a handy output to the terminal > > > > > > > > > "stdout": "[PM2] Applying action restartProcessId on app > [app](ids: [ 0 ])\n[PM2] [app](0) ✓\n[PM2] Process > > successfully > > > > > > > started\n┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐\n│ > > > id │ name │ namespace │ version │ mode │ pid │ uptime > │ ↺ │ status │ cpu │ mem │ user > > │ > > > watching > > > > > > > │\n├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤\n│ > > > 0 │ app │ default │ 12.0.0 │ fork │ 59888 │ 0s > │ 1 │ online │ 0% │ 8.7mb │ > > wasadm │ > > > disabled > > > > > > > │\n└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘", > > > "stdout_lines": [ > > > "[PM2] Applying action restartProcessId on app > [app](ids: [ 0 ])", > > > "[PM2] [app](0) ✓", > > > "[PM2] Process successfully started", > > > > > > > > > > "┌─────┬────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐", > > > "│ id │ name │ namespace │ version │ mode │ > pid │ uptime │ ↺ │ status │ cpu │ > > mem > > > │ user │ watching │", > > > > > > > > > > "├─────┼────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤", > > > "│ 0 │ app │ default │ 12.0.0 │ fork │ > 59888 │ 0s │ 1 │ online │ 0% │ > > 8.7mb > > > │ wasadm │ disabled │", > > > > > > > > > > "└─────┴────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘" > > > ] > > > } > > > } > > > > > > > > > However, using pm2 has introduced other problems such as me > failing to have it read the process.env file that node had > > > no issues with so now I am not listening on the intended port with > the custom credentials. No doubt there is a way > > to do > > > this but before looking at adopting pm2 is there not just a > simple fix to my existing ansible task in order to launch > > > "node start" and keep that process up and running? > > > > > > > I'm sure that pm2 can regard your process.env file, but I think that > is beyond the topic of this group. > > > > And no, I neither have or want "just" a fix for your inferior hack, > sorry. > > > > Regards > > Racke > > > > > > > > > > > On Thu, Sep 3, 2020 at 1:20 PM Stefan Hornburg (Racke) < > [email protected] <mailto:[email protected]> > > <mailto:[email protected] <mailto:[email protected]>>> wrote: > > > > > > On 9/3/20 2:07 PM, Sebastian Collins wrote: > > > > Hi, > > > > > > > > I have this task and I can't for the life of me get it to > keep the process running. I have added in some > > debug and it > > > > shows me the process is getting shutdown almost immediately > after it is started up as can be seen by the end > > time > > > in the > > > > output I have provided below. Please advise how I can fix > this so that the process keeps on running as future > > > tasks are > > > > performed. > > > > > > > > > > > > - hosts: nodes > > > > remote_user: root > > > > become_user: test > > > > become: true > > > > tasks: > > > > > > > > - name: execute startup script > > > > shell: nohup npm start > test.out 2>&1 & > > > > register: status > > > > args: > > > > chdir: "/apps/test/postcodes.io < > http://postcodes.io> <http://postcodes.io>" > > > > > > > > - debug: > > > > var: status > > > > > > > > > > > > > > Use a proper daemon process manager (PM2, > https://pm2.keymetrics.io/). > > > > > > Regards > > > Racke > > > > > > > Output: > > > > > > > > TASK [execute startup script] > ************************************************************ > > > > changed: [host] => {"changed": true, "cmd": "nohup npm start > > test.out 2>&1 &", "delta": "0:00:00.006275", > > "end": > > > > "2020-09-03 12:37:51.797561", "rc": 0, "start": "2020-09-03 > 12:37:51.791286", "stderr": "", "stderr_lines": [], > > > > "stdout": "", "stdout_lines": []} > > > > > > > > TASK [debug] > > > > > > > > ****************************************************************************************************************** > > > > ok: [host] => { > > > > "status": { > > > > "changed": true, > > > > "cmd": "nohup npm start > test.out 2>&1 &", > > > > "delta": "0:00:00.006275", > > > > "end": "2020-09-03 12:37:51.797561", > > > > "failed": false, > > > > "rc": 0, > > > > "start": "2020-09-03 12:37:51.791286", > > > > "stderr": "", > > > > "stderr_lines": [], > > > > "stdout": "", > > > > "stdout_lines": [] > > > > } > > > > } > > > > > > > > If I go on to the host and run it manually it works: > > > > > > > > host:APACHE >nohup npm start > host.out 2>&1 & > > > > [1] 45428 > > > > user@host:/apps/test/postcodes.io <http://postcodes.io> < > http://postcodes.io> > > > > host:APACHE > ps -ef | grep node > > > > user 45439 45428 3 12:54 pts/2 00:00:00 node server.js > > > > > > > > > > > > Any help much appreciated. > > > > > > > > > > > > -- > > > > You received this message because you are subscribed to the > Google Groups "Ansible Project" group. > > > > To unsubscribe from this group and stop receiving emails > from it, send an email to > > > > [email protected] <mailto: > ansible-project%[email protected]> > > <mailto:ansible-project%[email protected] <mailto: > ansible-project%[email protected]>> > > > <mailto:[email protected] <mailto: > ansible-project%[email protected]> > > <mailto:ansible-project%[email protected] <mailto: > ansible-project%[email protected]>>>. > > > > To view this discussion on the web visit > > > > > https://groups.google.com/d/msgid/ansible-project/02be6001-7a5f-4f13-b478-199947412270n%40googlegroups.com > > > > > > > > > < > https://groups.google.com/d/msgid/ansible-project/02be6001-7a5f-4f13-b478-199947412270n%40googlegroups.com?utm_medium=email&utm_source=footer > >. > > > > > > > > > -- > > > Ecommerce and Linux consulting + Perl and web application > programming. > > > Debian and Sympa administration. Provisioning with Ansible. > > > > > > -- > > > You received this message because you are subscribed to a > topic in the Google Groups "Ansible Project" group. > > > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/ansible-project/wEC_V3rGxeg/unsubscribe. > > > To unsubscribe from this group and all its topics, send an > email to > > [email protected] <mailto: > ansible-project%[email protected]> > > > <mailto:ansible-project%[email protected] > <mailto:ansible-project%[email protected]>>. > > > To view this discussion on the web visit > > > > https://groups.google.com/d/msgid/ansible-project/bd730ce8-9abc-cce9-1854-14457cd27475%40linuxia.de > . > > > > > > -- > > > You received this message because you are subscribed to the Google > Groups "Ansible Project" group. > > > To unsubscribe from this group and stop receiving emails from it, > send an email to > > > [email protected] <mailto: > ansible-project%[email protected]> > > <mailto:[email protected] <mailto: > ansible-project%[email protected]>>. > > > To view this discussion on the web visit > > > > > > https://groups.google.com/d/msgid/ansible-project/CAFqnG036tjLc%3DDkScJ_RtcQvuyZgx5YUA3ubqk4jYeHnngSiPQ%40mail.gmail.com > > > > > < > https://groups.google.com/d/msgid/ansible-project/CAFqnG036tjLc%3DDkScJ_RtcQvuyZgx5YUA3ubqk4jYeHnngSiPQ%40mail.gmail.com?utm_medium=email&utm_source=footer > >. > > > > > > -- > > Ecommerce and Linux consulting + Perl and web application > programming. > > Debian and Sympa administration. Provisioning with Ansible. > > > > -- > > You received this message because you are subscribed to a topic in > the Google Groups "Ansible Project" group. > > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/ansible-project/wEC_V3rGxeg/unsubscribe. > > To unsubscribe from this group and all its topics, send an email to > [email protected] > > <mailto:ansible-project%[email protected]>. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/ansible-project/1e256e75-78ce-ae98-30f8-71956757aa4b%40linuxia.de > . > > > > -- > > You received this message because you are subscribed to the Google > Groups "Ansible Project" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to > > [email protected] <mailto: > [email protected]>. > > To view this discussion on the web visit > > > https://groups.google.com/d/msgid/ansible-project/CAFqnG01yOzodEKMz9sO5_chO3rRfVJLnkjNXqTxbL0p7Jxd%3Daw%40mail.gmail.com > > < > https://groups.google.com/d/msgid/ansible-project/CAFqnG01yOzodEKMz9sO5_chO3rRfVJLnkjNXqTxbL0p7Jxd%3Daw%40mail.gmail.com?utm_medium=email&utm_source=footer > >. > > > -- > Ecommerce and Linux consulting + Perl and web application programming. > Debian and Sympa administration. Provisioning with Ansible. > > -- > You received this message because you are subscribed to a topic in the > Google Groups "Ansible Project" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/ansible-project/wEC_V3rGxeg/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/fabc0952-4f74-f959-011d-97ed15fc4bfb%40linuxia.de > . > -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAFqnG01ArMDv_gkZcChc2ayxUvTKT5DC7yeTpUFf01LuSJqC8A%40mail.gmail.com.
