Skip to main content

Understanding PM2

Introduction to PM2

PM2 is a robust, feature-rich and production-ready process manager that allows you to manage and keep your Node.js applications alive forever. It offers a range of features such as clustering, reload, restart, delete, stop application, and more.

PM2 is easy to use and helps you to maximize the uptime of your Node.js applications. It can automatically restart your applications when they crash, and it also restarts them when they're killed intentionally.

Let's dive into understanding PM2 and how to use it effectively.

Installation of PM2

Before we begin, you must have Node.js and NPM installed on your machine. Once you have these, you can install PM2 globally on your machine using the following command:

npm install pm2 -g

Once the installation process is complete, you can use the pm2 command anywhere in your terminal.

Starting an Application with PM2

Starting an application with PM2 is as simple as executing the following command:

pm2 start app.js

Here, app.js is the entry point file of your Node.js application. Replace it with the name of your main application file.

Listing PM2 Processes

To list all processes currently managed by PM2, use the following command:

pm2 list

This will show you a list of all applications currently running under PM2 along with their status, CPU usage, and memory usage.

Restarting, Reloading, and Stopping Processes

PM2 provides intuitive commands to restart, reload, and stop your processes. Below are the commands for each:

pm2 restart app_name_or_id
pm2 reload app_name_or_id
pm2 stop app_name_or_id

Replace app_name_or_id with the name or id of your application. You can determine these from the pm2 list command.

Application Monitoring

One of the most powerful features of PM2 is its ability to monitor your applications. You can monitor the logs, exceptions, and important metrics of your applications using the following command:

pm2 monit

This will open up the PM2 monitoring dashboard in your terminal.

Setting Up Cluster Mode

PM2's Cluster mode allows you to run your application on multiple CPU cores, which greatly increases performance and reliability. To start your application in cluster mode, use the following command:

pm2 start app.js -i max

In this command, -i max ensures that PM2 will auto-detect the number of available CPUs and start as many processes as there are CPUs.

Conclusion

In this tutorial, we've covered the basics of PM2, a powerful tool for Node.js application management. From installation to application monitoring and cluster mode setup, we've gone through the essential PM2 commands and features. With PM2, you can ensure your Node.js applications stay up and running, and perform at their best. Happy coding!