通过pm2 start server_erp.js --node-args='--harmony'
和npm restart
启动的服务如下:
pm2 start server_erp.js --node-args='--harmony'
[PM2] Applying action restartProcessId on app [server_erp](ids: [ 0 ])
[PM2] [server_erp](0) ✓
[PM2] Process successfully started
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ server_erp │ fork │ 45 │ online │ 0% │ 7.1mb │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
实际超找端口号查不到:
[root@izbp1e127kbk1pzti4r1o5z ~]# netstat -tulnp | grep "6050"
但是通过[root@izbp1e127kbk1pzti4r1o5z project]# node server_erp.js
可以查到端口号。
当然查不到接口就不通,查到接口就正常。
通过pm2带日志开启:
[root@izbp1e127kbk1pzti4r1o5z project]# pm2 logs server_erp
[TAILING] Tailing last 15 lines for [server_erp] process (change the value with --lines option)
/root/.pm2/logs/server-erp-out.log last 15 lines:
/root/.pm2/logs/server-erp-error.log last 15 lines:
0|server_e | code: 'MODULE_NOT_FOUND',
0|server_e | requireStack: []
0|server_e | }
0|server_e | node:internal/modules/cjs/loader:1031
0|server_e | throw err;
0|server_e | ^
0|server_e |
0|server_e | Error: Cannot find module '/root/nvm/versions/node/v4.8.4/lib/node_modules/pm2/lib/ProcessContainerFork.js'
0|server_e | at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1028:15)
0|server_e | at Function.Module._load (node:internal/modules/cjs/loader:873:27)
0|server_e | at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
0|server_e | at node:internal/main/run_main_module:22:47 {
0|server_e | code: 'MODULE_NOT_FOUND',
0|server_e | requireStack: []
0|server_e | }
经过分析是因为node是本地按转的不在/root/nvm/versions/node/v4.8.4/目录下。
解决办法:
查找该文件的实际路径:
[root@izbp1e127kbk1pzti4r1o5z project]# sudo find / -name "ProcessContainerFork.js"
/opt/node-v16.20.2-linux-x64/lib/node_modules/pm2/lib/ProcessContainerFork.js
建立软链接:
[root@izbp1e127kbk1pzti4r1o5z v4.8.4]# ln -s /opt/node-v16.20.2-linux-x64/lib /root/nvm/versions/node/v4.8.4/lib
[root@izbp1e127kbk1pzti4r1o5z v4.8.4]# ls
bin lib
重启服务:
[root@izbp1e127kbk1pzti4r1o5z project]# npm restart
> office-rent@1.0.0 restart
> pm2 restart all
Use --update-env to update environment variables
[PM2] Applying action restartProcessId on app [all](ids: [ 0 ])
[PM2] [server_erp](0) ✓
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name │ mode │ ↺ │ status │ cpu │ memory │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0 │ server_erp │ fork │ 105 │ online │ 0% │ 4.3mb │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
查询端口正常:
[root@izbp1e127kbk1pzti4r1o5z ~]# netstat -tulnp | grep "6050"
tcp6 0 0 :::6050 :::* LISTEN 11592/node