Bird
Raised Fist0
Node.jsframework~3 mins

Why PM2 for process management in Node.js? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if your app could fix itself whenever it crashes, without you lifting a finger?

The Scenario

Imagine running your Node.js app on a server and having to restart it manually every time it crashes or when you update the code.

You also want to keep it running 24/7 without downtime, but you have no easy way to monitor or manage it.

The Problem

Manually restarting processes is tiring and error-prone.

If the app crashes, it stays down until you notice and fix it.

Managing multiple apps or versions becomes confusing and time-consuming.

The Solution

PM2 automatically keeps your Node.js apps alive, restarts them on failure, and lets you manage multiple processes easily from one place.

It also provides monitoring and log management, so you can focus on coding, not babysitting your app.

Before vs After
✗ Before
node app.js
# If it crashes, you must restart manually
✓ After
pm2 start app.js
# PM2 keeps it running and restarts automatically
What It Enables

PM2 enables reliable, automatic process management so your apps stay online smoothly without manual intervention.

Real Life Example

A small business website running on Node.js can stay online 24/7 without downtime, even if the server restarts or the app crashes unexpectedly.

Key Takeaways

Manual process management is slow and risky.

PM2 automates restarting and monitoring Node.js apps.

This leads to more reliable and easier app maintenance.

Practice

(1/5)
1. What is the primary purpose of PM2 in Node.js application management?
easy
A. To keep Node.js applications running and restart them if they crash
B. To compile Node.js code into machine code
C. To serve static files like images and CSS
D. To replace the Node.js runtime environment

Solution

  1. Step 1: Understand PM2's role

    PM2 is a process manager designed to keep Node.js apps alive and restart them automatically if they crash.
  2. Step 2: Compare options

    Options A, B, and C describe unrelated tasks like replacing the runtime, compiling code, or serving static files, which PM2 does not do.
  3. Final Answer:

    To keep Node.js applications running and restart them if they crash -> Option A
  4. Quick Check:

    PM2 = process manager for app uptime [OK]
Hint: PM2 manages app uptime and restarts crashed apps [OK]
Common Mistakes:
  • Confusing PM2 with a compiler or bundler
  • Thinking PM2 serves static content
  • Believing PM2 replaces Node.js runtime
2. Which of the following is the correct command to start an app named app.js using PM2?
easy
A. pm2 run app.js
B. pm2 launch app.js
C. pm2 start app.js
D. pm2 execute app.js

Solution

  1. Step 1: Recall PM2 start command

    The correct command to start an app with PM2 is pm2 start <file>.
  2. Step 2: Verify options

    Options A, B, and D use incorrect verbs like run, launch, or execute which are not valid PM2 commands.
  3. Final Answer:

    pm2 start app.js -> Option C
  4. Quick Check:

    Start app = pm2 start [OK]
Hint: Use 'pm2 start' to launch apps [OK]
Common Mistakes:
  • Using 'pm2 run' instead of 'pm2 start'
  • Confusing PM2 commands with other tools
  • Typing 'pm2 launch' which is invalid
3. Given the following PM2 command sequence:
pm2 start app.js --name myapp
pm2 restart myapp
pm2 stop myapp
pm2 delete myapp

What is the state of myapp after these commands?
medium
A. The app crashed and PM2 is trying to restart it
B. The app is stopped but still listed in PM2 process list
C. The app is running and managed by PM2
D. The app is removed from PM2 process list

Solution

  1. Step 1: Analyze each command effect

    pm2 start app.js --name myapp starts and names the app. pm2 restart myapp restarts it. pm2 stop myapp stops it but keeps it listed. pm2 delete myapp removes it from PM2's list.
  2. Step 2: Determine final state

    After deletion, the app is no longer managed or listed by PM2.
  3. Final Answer:

    The app is removed from PM2 process list -> Option D
  4. Quick Check:

    Delete removes app from PM2 list [OK]
Hint: Delete removes app from PM2 list, stop just pauses it [OK]
Common Mistakes:
  • Confusing stop with delete
  • Assuming restart keeps app stopped
  • Thinking delete crashes the app
4. You run pm2 start app.js but the app crashes immediately. Which PM2 command helps you see the error logs to debug the issue?
medium
A. pm2 status
B. pm2 logs
C. pm2 restart
D. pm2 list

Solution

  1. Step 1: Identify command to view logs

    pm2 logs shows real-time logs including errors from apps managed by PM2.
  2. Step 2: Compare other commands

    pm2 status and pm2 list show process info but not detailed logs. pm2 restart restarts apps but doesn't show logs.
  3. Final Answer:

    pm2 logs -> Option B
  4. Quick Check:

    Logs show errors for debugging [OK]
Hint: Use 'pm2 logs' to see app errors instantly [OK]
Common Mistakes:
  • Using 'pm2 status' to find errors
  • Restarting app without checking logs
  • Confusing 'pm2 list' with logs
5. You want PM2 to automatically restart your app server.js whenever the file changes during development. Which command achieves this?
hard
A. pm2 start server.js --watch
B. pm2 start server.js --no-restart
C. pm2 start server.js --ignore-watch
D. pm2 start server.js --restart-delay 1000

Solution

  1. Step 1: Understand PM2 watch option

    The --watch flag tells PM2 to watch for file changes and restart the app automatically.
  2. Step 2: Evaluate other options

    --no-restart disables restarts, --ignore-watch disables watching, and --restart-delay adds delay but doesn't enable watching.
  3. Final Answer:

    pm2 start server.js --watch -> Option A
  4. Quick Check:

    Watch flag enables auto-restart on file changes [OK]
Hint: Use '--watch' to auto-restart on file changes [OK]
Common Mistakes:
  • Using --no-restart disables restarts
  • Ignoring watch disables file monitoring
  • Restart delay doesn't watch files
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard