PM2 (
https://pm2.keymetrics.io/) is a process manager often associated with node.js apps written in Java Script. It can also manage processes written in Python (see:
https://pm2.io/blog/2018/09/19/Manage-Python-Processes).
I was not able to get PM2 working with WeeWX - has anyone got it going?
I was able to get the example 'hello.py' script working.
When I tried 'sudo pm2 start /home/weewx/bin/weewxd' I got the following error (viewed using 'sudo pm2 logs'):
1|weewxd | /home/weewx/bin/weewxd:2
1|weewxd | #
1|weewxd | ^
1|weewxd | SyntaxError: Invalid or unexpected token
1|weewxd | at Module._compile (internal/modules/cjs/loader.js:723:23)
1|weewxd | at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
1|weewxd | at Module.load (internal/modules/cjs/loader.js:653:32)
1|weewxd | at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
1|weewxd | at Function.Module._load (internal/modules/cjs/loader.js:585:3)
1|weewxd | at Object.<anonymous> (/usr/lib/node_modules/pm2/lib/ProcessContainerFork.js:33:23)
1|weewxd | at Module._compile (internal/modules/cjs/loader.js:778:30)
1|weewxd | at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
1|weewxd | at Module.load (internal/modules/cjs/loader.js:653:32)
1|weewxd | at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
PM2 | App [weewxd:1] exited with code [1] via signal [SIGINT]
PM2 | Script /home/weewx/bin/weewxd had too many unstable restarts (16). Stopped. "errored"
I suspected that was because PM2 uses the file extension to determine the script language so I changed the name of 'weewxd' to 'weewxd.py'. Things progressed a little further but I got:
/root/.pm2/logs/weewxd-out.log last 15 lines:
/root/.pm2/logs/weewxd-error.log last 15 lines:
0|weewxd | File "/home/weewx/bin/weewxd.py", line 20, in <module>
0|weewxd | import configobj
0|weewxd | ImportError: No module named configobj
0|weewxd | Traceback (most recent call last):
0|weewxd | File "/home/weewx/bin/weewxd.py", line 20, in <module>
0|weewxd | import configobj
0|weewxd | ImportError: No module named configobj
0|weewxd | Traceback (most recent call last):
0|weewxd | File "/home/weewx/bin/weewxd.py", line 20, in <module>
0|weewxd | import configobj
0|weewxd | ImportError: No module named configobj
0|weewxd | Traceback (most recent call last):
0|weewxd | File "/home/weewx/bin/weewxd.py", line 20, in <module>
0|weewxd | import configobj
0|weewxd | ImportError: No module named configobj
I assume that WeeWx is starting up but the Python interpreter can't find the file for the the import, so perhaps something needs to be tweaked in PATH? I don't want to change anything in that area with advice.
Starting/stopping WeeWX with '/etc/init.d/weewx' works perfectly.
Regards and thanks in advance,
Garry