Macbook Pro as Power Bank
source link: https://aungkoman.github.io/2023/04/27/how-to-run-node-js-in-production.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
install PM
npm install pm2 -g
run project
pm2 start index.js
List Process
pm2 list
Stop Process
pm2 stop app_name / process index
pm2 stop 0
Restart on file changes
pm2 start app.js –watch
root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# ls Procfile app.json index.js package-lock.json public views README.md backup-gps node_modules package.json test.js root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# sudo npm install pm2@latest -g sudo: npm: command not found root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# npm install npm WARN EBADENGINE Unsupported engine { npm WARN EBADENGINE package: ‘[email protected]’, npm WARN EBADENGINE required: { node: ‘14.x’ }, npm WARN EBADENGINE current: { node: ‘v19.3.0’, npm: ‘9.2.0’ } npm WARN EBADENGINE }
up to date, audited 201 packages in 3s
45 packages are looking for funding
run npm fund
for details
10 vulnerabilities (1 moderate, 7 high, 2 critical)
To address all issues, run: npm audit fix
Run npm audit
for details.
root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# npm install pm2 -g
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
changed 184 packages in 14s
12 packages are looking for funding
run npm fund
for details
root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# pm2 start index.js
In-memory PM2 is out-of-date, do: $ pm2 update In memory PM2 version: 5.2.2 Local PM2 version: 5.3.0
[PM2][ERROR] Script already launched, add -f option to force re-execution root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# pm2 start index.js -f
In-memory PM2 is out-of-date, do: $ pm2 update In memory PM2 version: 5.2.2 Local PM2 version: 5.3.0
[PM2] Starting /var/www/html/socket/index.js in fork_mode (1 instance) [PM2] Done. ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ index │ fork │ 0 │ stopped │ 0% │ 0b │ │ 1 │ index │ fork │ 12 │ online │ 0% │ 48.6mb │ │ 2 │ index │ fork │ 0 │ online │ 0% │ 15.1mb │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘ [PM2][WARN] Current process list is not synchronized with saved list. Type ‘pm2 save’ to synchronize. root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# pm2 stop 1
In-memory PM2 is out-of-date, do: $ pm2 update In memory PM2 version: 5.2.2 Local PM2 version: 5.3.0
[PM2] Applying action stopProcessId on app [1](ids: [ ‘1’ ]) [PM2] index ✓ ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ index │ fork │ 0 │ stopped │ 0% │ 0b │ │ 1 │ index │ fork │ 12 │ stopped │ 0% │ 0b │ │ 2 │ index │ fork │ 0 │ online │ 0% │ 56.1mb │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘ [PM2][WARN] Current process list is not synchronized with saved list. Type ‘pm2 save’ to synchronize. root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# pm2 stop 2
In-memory PM2 is out-of-date, do: $ pm2 update In memory PM2 version: 5.2.2 Local PM2 version: 5.3.0
[PM2] Applying action stopProcessId on app [2](ids: [ ‘2’ ]) [PM2] index ✓ ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ index │ fork │ 0 │ stopped │ 0% │ 0b │ │ 1 │ index │ fork │ 12 │ stopped │ 0% │ 0b │ │ 2 │ index │ fork │ 0 │ stopped │ 0% │ 0b │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘ [PM2][WARN] Current process list is not synchronized with saved list. Type ‘pm2 save’ to synchronize. root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# pm2 list
In-memory PM2 is out-of-date, do: $ pm2 update In memory PM2 version: 5.2.2 Local PM2 version: 5.3.0
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ index │ fork │ 0 │ stopped │ 0% │ 0b │ │ 1 │ index │ fork │ 12 │ stopped │ 0% │ 0b │ │ 2 │ index │ fork │ 0 │ stopped │ 0% │ 0b │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘ [PM2][WARN] Current process list is not synchronized with saved list. Type ‘pm2 save’ to synchronize. root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# pm2 kill
In-memory PM2 is out-of-date, do: $ pm2 update In memory PM2 version: 5.2.2 Local PM2 version: 5.3.0
[PM2] Applying action deleteProcessId on app all [PM2] index ✓ [PM2] index ✓ [PM2] index ✓ [PM2] [v] All Applications Stopped [PM2] [v] PM2 Daemon Stopped root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# pm2 list [PM2] Spawning PM2 daemon with pm2_home=/root/.pm2 [PM2] PM2 Successfully daemonized ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘ [PM2][WARN] Current process list is not synchronized with saved list. App index index differs. Type ‘pm2 save’ to synchronize. root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# pm2 start index.js [PM2] Starting /var/www/html/socket/index.js in fork_mode (1 instance) [PM2] Done. ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ index │ fork │ 0 │ online │ 0% │ 39.7mb │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘ [PM2][WARN] Current process list is not synchronized with saved list. Type ‘pm2 save’ to synchronize. root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket#
https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-20-04
https://www.codespeedy.com/remove-node-js-app-from-pm2-process-list/#:~:text=In%20order%20to%20delete%20a,Doing%20this%20is%20quite%20easy.&text=We%20can%20clearly%20see%20the,or%20remove%20the%20specific%20Node.
https://pm2.keymetrics.io/docs/usage/watch-and-restart/
root@ubuntu-s-1vcpu-2gb-nyc1-01:/var/www/html/socket# pm2 start index.js –watch [PM2] Starting /var/www/html/socket/index.js in fork_mode (1 instance) [PM2] Done. ┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐ │ id │ name │ mode │ ↺ │ status │ cpu │ memory │ ├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤ │ 0 │ index │ fork │ 0 │ online │ 0% │ 44.1mb │ └────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘ [PM2][WARN] Current process list is not synchronized with saved list. Type ‘pm2 save’ to synchronize.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK