What is PM2 in the context of Node.js applications?
PM2 is a process manager for Node.js applications that helps keep apps running continuously, restarts them if they crash, and manages multiple processes easily.
Click to reveal answer
beginner
How do you start an Express app using PM2?
You use the command pm2 start app.js where app.js is your Express app's main file. PM2 will run and monitor the app.
Click to reveal answer
beginner
What command shows the list of running processes managed by PM2?
The command pm2 list displays all running processes with their status, CPU, and memory usage.
Click to reveal answer
intermediate
How does PM2 help with zero-downtime reloads in production?
PM2 can reload your app without stopping it completely using pm2 reload app_name, which restarts processes one by one to avoid downtime.
Click to reveal answer
intermediate
What is the purpose of the ecosystem.config.js file in PM2?
It is a configuration file where you define how PM2 should run your app(s), including environment variables, number of instances, and script paths.
Click to reveal answer
Which PM2 command starts your Express app?
Apm2 start app.js
Bpm2 run app.js
Cpm2 execute app.js
Dpm2 launch app.js
✗ Incorrect
The correct command to start an app with PM2 is pm2 start app.js.
What does pm2 list show?
AAll installed npm packages
BRunning processes managed by PM2
CSystem CPU usage
DNetwork connections
✗ Incorrect
pm2 list shows all processes PM2 is managing, including their status.
How can PM2 help avoid downtime when updating your app?
ABy disabling the app temporarily
BBy stopping all processes before restart
CBy running a backup server
DBy reloading processes one by one
✗ Incorrect
PM2 reloads processes one at a time to keep the app available during updates.
What is the role of ecosystem.config.js in PM2?
AIt stores app logs
BIt is a database file
CIt defines app start settings and environment
DIt contains user credentials
✗ Incorrect
ecosystem.config.js configures how PM2 runs your app, including environment variables and instances.
Which of these is NOT a feature of PM2?
ACompiling JavaScript to machine code
BLoad balancing across CPU cores
CMonitoring CPU and memory usage
DAutomatic app restarts on crash
✗ Incorrect
PM2 manages processes but does not compile JavaScript to machine code.
Explain how PM2 helps keep an Express app running smoothly in production.
Think about what happens if your app crashes or needs updating.
You got /4 concepts.
Describe the purpose and typical contents of the PM2 ecosystem.config.js file.
It's a setup file that tells PM2 how to run your app.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of using PM2 with an Express application?
easy
A. To write the Express app code faster
B. To style the Express app's frontend
C. To keep the app running continuously without manual restarts
D. To create database schemas automatically
Solution
Step 1: Understand PM2's role
PM2 is a process manager that keeps Node.js apps running smoothly by restarting them if they crash or stop.
Step 2: Identify its use with Express
Using PM2 with Express ensures the server stays online without manual restarts after crashes or updates.
Final Answer:
To keep the app running continuously without manual restarts -> Option C
Quick Check:
PM2 manages app uptime = B [OK]
Hint: PM2 keeps your app alive automatically [OK]
Common Mistakes:
Thinking PM2 helps with frontend styling
Confusing PM2 with code writing tools
Assuming PM2 manages databases
2. Which of the following is the correct command to start an Express app named app.js using PM2?
easy
A. pm2 run app.js
B. pm2 start app.js
C. pm2 launch app.js
D. pm2 execute app.js
Solution
Step 1: Recall PM2 start command
The correct PM2 command to launch an app is pm2 start <file>.
Step 2: Match the command with options
Among the options, only pm2 start app.js matches the correct syntax.
What is the state of the app after these commands?
medium
A. The app is running but without a name
B. The app is stopped but still managed by PM2
C. The app is running with the name 'myapp'
D. The app is removed from PM2 process list and not running
Solution
Step 1: Analyze each command effect
pm2 start app.js --name myapp starts the app named 'myapp'. pm2 restart myapp restarts it. pm2 stop myapp stops the app but keeps it in PM2 list. pm2 delete myapp removes the app from PM2 list and stops it completely.
Step 2: Determine final state
After deletion, the app is no longer managed by PM2 and is not running.
Final Answer:
The app is removed from PM2 process list and not running -> Option D
Quick Check:
Delete removes app from PM2 = A [OK]
Hint: Delete removes app from PM2 and stops it [OK]
Common Mistakes:
Thinking stop deletes the app from PM2
Assuming restart keeps app stopped
Confusing app running state after delete
4. You tried to start your Express app with PM2 using pm2 start app.js, but it immediately stops. Which of the following is the most likely cause?
medium
A. The app.js file has a syntax error causing it to crash
B. PM2 does not support Express apps
C. You need to use pm2 run instead of pm2 start
D. The app.js file is missing the package.json
Solution
Step 1: Understand PM2 behavior on crashes
If the app crashes immediately after start, PM2 will stop it and try to restart repeatedly.
Step 2: Identify common crash reasons
A syntax error in app.js is a common cause for immediate crash and stop.
Final Answer:
The app.js file has a syntax error causing it to crash -> Option A
Quick Check:
Crash causes immediate stop = C [OK]
Hint: Check app.js syntax if PM2 stops immediately [OK]
Common Mistakes:
Believing PM2 can't run Express apps
Using wrong PM2 commands like 'run'
Thinking package.json is required to start app.js
5. You want to run multiple instances of your Express app using PM2 to improve performance on a multi-core server. Which command correctly achieves this?
hard
A. pm2 start app.js -i max
B. pm2 start app.js --instances 1
C. pm2 start app.js --scale 4
D. pm2 start app.js --multi 4
Solution
Step 1: Understand PM2 instance options
PM2 uses -i or --instances to specify how many app instances to run. Using -i max runs as many instances as CPU cores.
Step 2: Evaluate options
--instances 1 runs only one instance. --scale and --multi are not valid PM2 options.
Final Answer:
pm2 start app.js -i max -> Option A
Quick Check:
Use '-i max' for multi-core instances = A [OK]
Hint: Use '-i max' to run all CPU cores [OK]
Common Mistakes:
Using invalid options like --scale or --multi
Setting instances to 1 for multi-core use
Confusing PM2 flags for scaling
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.