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.
Displaying logs of a specified process or all processes, in real time:
$ pm2 logs
$ pm2 logs big-api
$ pm2 flush # Clear all the logs
Load balancing / 0s reload downtime
When an app is started with the -i option, the cluster mode is enabled.
Warning: It's still a beta feature. If you want to use the embed cluster module or reload with 0s downtime, we recommend the use of node#0.12.0+ node#0.11.16+ or io.js#1.0.2+. We do not support node#0.10.* cluster module anymore!
With the cluster mode, PM2 enables load balancing between each worker. Each HTTP/TCP/UDP request will be forwarded to one specific process at a time.
$ pm2 start app.js -i max # Enable load-balancer and cluster features
$ pm2 reload all # Reload all apps in 0s manner
Startup script generation
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