[Server Running] [Node.js, PM2] Using PM2 To Keep Your Node Apps Alive

时间:2022-04-02 05:11:50

PM2 is a production process manager for Node.js applications with a built-in load balancer. It allows you to keep applications alive forever, to reload them without downtime and to facilitate common system admin tasks.

Install:


$ npm install pm2 -g

Before Start:


PM2 can generate and configure a startup script to keep PM2 and your processes alive at every server restart.

$ pm2 startup
# auto-detect platform
$ pm2 startup [platform]
# render startup-script for a specific platform, the [platform] could be one of:
# ubuntu|centos|redhat|gentoo|systemd|darwin|amazon

Start:


$ pm2 start bin/www    /* meds example */

[Server Running] [Node.js, PM2] Using PM2 To Keep Your Node Apps Alive

This has the same effect as:

  $ node bin/www

run the app, but on windows, it just keep it run once, once you refresh the page, the app die. [PROBLEM]

If it works as expected, when you kill the process:

kill - <pid>

The pm2 will detect that our app is crashed, so it will start a new pid to run the app.

[Notice:] On Linux, PM2 will grap the root, run as root, but in genral, we don't want to use root. So we usually create a user to use PM2.

pm2 startup on liunx:

[Server Running] [Node.js, PM2] Using PM2 To Keep Your Node Apps Alive

Change the user:

[Server Running] [Node.js, PM2] Using PM2 To Keep Your Node Apps Alive

test script:

[Server Running] [Node.js, PM2] Using PM2 To Keep Your Node Apps Alive

More  information:

https://egghead.io/lessons/node-js-using-pm2-to-keep-your-node-apps-alive

https://github.com/Unitech/pm2