PM2 Quick Start

PM2 adalah manajer proses daemon yang akan membantu Anda mengelola dan menjaga aplikasi Anda tetap online. Dengan PM2 mengelola proses Node.js menjadi lebih cepat dan mudah seperti melakukan Scale, restart, dan monitor aplikasi

Installation

npm install pm2@latest -g
# or
yarn global add pm2

Start an app

pm2 start app.js

Beberapa opsi lain yang dapat Anda gunakan

# Specify an app name
--name <app_name>

# Watch and Restart app when files change
--watch

# Set memory threshold for app reload
--max-memory-restart <200MB>

# Do not auto restart app
--no-autorestart

Managing processes

Untuk mengelola status aplikasi

pm2 restart app_name
pm2 reload app_name
pm2 stop app_name
pm2 delete app_name

List managed applications

pm2 [list|ls|status]

Display logs

pm2 logs

Untuk menelusuri log berdasarkan baris text

pm2 logs --lines 200

Terminal Based Dashboard

pm2 monit

Cluster mode

Untuk start app dengan mode cluster

pm2 start app.js -i max

Updating PM2

npm install pm2@latest -g

Then update the in-memory PM2 :

pm2 update

CheatSheet

# Fork mode
pm2 start app.js --name my-api # Name process

# Cluster mode
pm2 start app.js -i 0        # Will start maximum processes with LB depending on available CPUs
pm2 start app.js -i max      # Same as above, but deprecated.
pm2 scale app +3             # Scales `app` up by 3 workers
pm2 scale app 2              # Scales `app` up or down to 2 workers total

# Listing

pm2 list               # Display all processes status
pm2 jlist              # Print process list in raw JSON
pm2 prettylist         # Print process list in beautified JSON

pm2 describe 0         # Display all information about a specific process

pm2 monit              # Monitor all processes

# Logs

pm2 logs [--raw]       # Display all processes logs in streaming
pm2 flush              # Empty all log files
pm2 reloadLogs         # Reload all logs

# Actions

pm2 stop all           # Stop all processes
pm2 restart all        # Restart all processes

pm2 reload all         # Will 0s downtime reload (for NETWORKED apps)

pm2 stop 0             # Stop specific process id
pm2 restart 0          # Restart specific process id

pm2 delete 0           # Will remove process from pm2 list
pm2 delete all         # Will remove all processes from pm2 list

# Misc

pm2 reset <process>    # Reset meta data (restarted time...)
pm2 updatePM2          # Update in memory pm2
pm2 ping               # Ensure pm2 daemon has been launched
pm2 sendSignal SIGUSR2 my-app # Send system signal to script
pm2 start app.js --no-daemon
pm2 start app.js --no-vizion
pm2 start app.js --no-autorestart