Bird
Raised Fist0
Node.jsframework~20 mins

PM2 for process management in Node.js - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
PM2 Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
What is the primary purpose of PM2 in Node.js?

PM2 is a popular tool used with Node.js. What is its main job?

ATo convert Node.js applications into mobile apps automatically.
BTo compile Node.js code into machine language for faster execution.
CTo provide a graphical user interface for writing Node.js code.
DTo manage and keep Node.js applications running smoothly in the background.
Attempts:
2 left
💡 Hint

Think about what helps keep your app alive and restarts it if it crashes.

❓ component_behavior
intermediate
1:30remaining
What happens when you run 'pm2 start app.js'?

Consider you have a Node.js app in app.js. What does the command pm2 start app.js do?

AOnly runs the app once and then stops PM2 automatically.
BStarts the app and keeps it running in the background, restarting if it crashes.
CCompiles <code>app.js</code> into a binary file without running it.
DDeletes <code>app.js</code> after running it once.
Attempts:
2 left
💡 Hint

Think about how PM2 helps keep your app alive even if it crashes.

❓ state_output
advanced
2:00remaining
What is the output of 'pm2 list' after starting two apps?

You started two apps with PM2: pm2 start app1.js and pm2 start app2.js. What will pm2 list show?

AA table listing both apps with their status as 'online' and their process IDs.
BAn error saying no apps are running because PM2 does not track multiple apps.
COnly the first app listed with the second app missing.
DA blank screen with no output.
Attempts:
2 left
💡 Hint

PM2 tracks all apps it manages and shows their status.

🔧 Debug
advanced
2:00remaining
Why does 'pm2 restart app' fail with 'process not found'?

You ran pm2 restart app but got an error: 'process not found'. What is the likely cause?

AThe process name 'app' does not match any running PM2 process names or IDs.
BPM2 is not installed on your system.
CYour Node.js app crashed and cannot be restarted.
DYou need to use <code>pm2 reload app</code> instead of restart.
Attempts:
2 left
💡 Hint

Check the exact process names or IDs PM2 shows in pm2 list.

📝 Syntax
expert
2:30remaining
Which PM2 ecosystem config file is valid for running two apps?

Choose the correct JSON format for a PM2 ecosystem file that runs app1.js and app2.js with names app-one and app-two.

A
{
  "apps": {
    "app-one": "app1.js",
    "app-two": "app2.js"
  }
}
B
}
]  
}"sj.2ppa" :"tpircs" ,"owt-ppa" :"eman"{    
,}"sj.1ppa" :"tpircs" ,"eno-ppa" :"eman"{    
[ :"sppa"  
{
C
{
  "apps": [
    {"name": "app-one", "script": "app1.js"},
    {"name": "app-two", "script": "app2.js"}
  ]
}
D
{
  "apps": [
    {"name": "app-one", "script": "app1.js"},
    {"name": "app-two"}
  ]
}
Attempts:
2 left
💡 Hint

Remember JSON requires double quotes around keys and strings, and arrays use square brackets.

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