Skip to content

Instantly share code, notes, and snippets.

@anilahir
Created December 24, 2019 08:36
Show Gist options
  • Select an option

  • Save anilahir/ff2dfd36698dfd376e27af4f78f8dc11 to your computer and use it in GitHub Desktop.

Select an option

Save anilahir/ff2dfd36698dfd376e27af4f78f8dc11 to your computer and use it in GitHub Desktop.
PM2 setup
Install PM2:
sudo npm install pm2 -g
pm2.config.json:
{
    "apps": [{
        "name": "app-8000",
        "cwd": "/var/www/app-dev",
        "log_file": "logs/app_dev.log",
        "script": "bin/www",
        "log_date_format": "YYYY-MM-DD HH:mm:ss",
        "out_file": "/dev/null",
        "error_file": "/dev/null",
        "min_uptime": 500,
        "max_restarts": 10,
        "restart_delay": 1000,
        "watch": true,
        "watch_delay": 1000,
        "ignore_watch": ["node_modules", "logs"],
        "watch_options": {
            "followSymlinks": false
        }
    }]
}
PM2 start with config:
pm2 start pm2.config.json
Install PM2 logrotate module:
pm2 install pm2-logrotate
Save PM2 app settings:
pm2 save
Add PM2 in start up:
pm2 startup
Check logs for this setup:
tail -f logs/app_dev.log
Some other useful PM2 commands:
# Logs

pm2 logs               # 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment