Skip to content

Instantly share code, notes, and snippets.

@dohaivu
Last active February 19, 2018 02:03
Show Gist options
  • Save dohaivu/01f02dea5a2406501e2c91f06c53ca0a to your computer and use it in GitHub Desktop.
Save dohaivu/01f02dea5a2406501e2c91f06c53ca0a to your computer and use it in GitHub Desktop.
[nodejs commands] #nodejs daemon debug forvever pm2

Forever

https://www.npmjs.com/package/forever

sudo npm install -g forever
forever start server.js
forever list

forever stop 0 # integer in the bracket
forever restart 0

PM2

npm install pm2@latest -g
pm2 startup # start pm2 when server reboot

# 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.

# 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 informations 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

# Start
pm2 start app.js           # Start app.js
pm2 start app.js -- -a 23  # Pass arguments '-a 23' argument to app.js script
pm2 start app.js --name serverone # Start a process and name it as serverone

pm2 start app.js --node-args="--debug=7001" # --node-args to pass options to node V8

pm2 start app.js -i 0             # Start maximum processes depending on available CPUs (cluster mode)

pm2 start app.js --log-date-format "YYYY-MM-DD HH:mm Z"    # Log will be prefixed with custom time format

pm2 start app.json                # Start processes with options declared in app.json
pm2 start app.js -e err.log -o out.log  # Start and specify error and out log

Debug

# run this
node --inspect --debug-brk <index.js>

# open chrome
chrome://inspect
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment