Installing node environment, configuring soft connection and pm2 managing node process under linux


Download the installation package of linux system on the official website and upload it to the server for decompression and installation

  • Execute the decompression command: tar - xvf node-v6.10.0-linux-x64.tar.xz
  • Rename: MV node-v6.10.0-linux-x64 nodejs
  • Check whether there are node and npm files in bin directory of nodejs. If there is a soft connection, if there is no download, perform the above steps;

Through Source code compilation, download the Source code file on the official website,

  • tar xvf node-v0.10.28.tar.gz
  • cd node-v0.10.28
  • ./configure
  • make
  • make install
  • cp /usr/local/bin/node /usr/sbin / choose your own path
  • View the version of the currently installed Node: node -v
Establish soft connection and configure global environment variables
  • ln -s /usr/local/nodejs/bin/npm /usr/local/bin/
  • ln -s /usr/local/nodejs/bin/node /usr/local/bin/

Check whether the configuration is good

  • node -v
  • npm -v
Using pm2 to manage node process
  • Installation: npm i pm2 -g
  • Run: pm2 start app.js
  • Stop all processes: pm2 stop all
  • Restart all processes: pm2 restart all
pm2 command
# General 
    $ npm install pm2 -g            # Install PM2 
    $ pm2 start app.js              # Start, Daemonize and auto-restart application (Node) 
    $ pm2 start              # Start, Daemonize and auto-restart application (Python) 
    $ pm2 start npm -- start        # Start, Daemonize and auto-restart Node application 

# Cluster Mode (Node.js only) 
    $ pm2 start app.js -i 4         # Start 4 instances of application in cluster mode 
                                    # it will load balance network queries to each app 
    $ pm2 reload all                # Zero Second Downtime Reload 
    $ pm2 scale [app-name] 10       # Scale Cluster app to 10 process 

# Process Monitoring 
    $ pm2 list                      # List all processes started with PM2 
    $ pm2 list --sort=<field>       # Sort all processes started with PM2 
    $ pm2 monit                     # Display memory and cpu usage of each app 
    $ pm2 show [app-name]           # Show all information about application 

# Log management 
    $ pm2 logs                      # Display logs of all apps 
    $ pm2 logs [app-name]           # Display logs for a specific app 
    $ pm2 logs --json               # Logs in JSON format 
    $ pm2 flush
    $ pm2 reloadLogs

# Process State Management 
    $ pm2 start app.js --name="api" # Start application and name it "api" 
    $ pm2 start app.js -- -a 34     # Start app and pass option "-a 34" as argument 
    $ pm2 start app.js --watch      # Restart application on file change 
    $ pm2 start           # Start bash script 
    $ pm2 start app.json            # Start all applications declared in app.json 
    $ pm2 reset [app-name]          # Reset all counters 
    $ pm2 stop all                  # Stop all apps 
    $ pm2 stop 0                    # Stop process with id 0 
    $ pm2 restart all               # Restart all apps 
    $ pm2 gracefulReload all        # Gracefully reload all apps in cluster mode 
    $ pm2 delete all                # Kill and delete all apps 
    $ pm2 delete 0                  # Delete app with id 0 

# Startup/Boot management 
    $ pm2 startup                   # Detect init system, generate and configure pm2 boot on startup 
    $ pm2 save                      # Save current process list 
    $ pm2 resurrect                 # Restore previously saved processes 
    $ pm2 unstartup                 # Disable and remove startup system 

    $ pm2 update                    # Save processes, kill PM2 and restore processes 
    $ pm2 generate                  # Generate a sample json configuration file 

# Deployment 
    $ pm2 deploy app.json prod setup    # Setup "prod" remote server 
    $ pm2 deploy app.json prod          # Update "prod" remote server 
    $ pm2 deploy app.json prod revert 2 # Revert "prod" remote server by 2 

# Module system 
    $ pm2 module:generate [name]    # Generate sample module with name [name] 
    $ pm2 install pm2-logrotate     # Install module (here a log rotation system) 
    $ pm2 uninstall pm2-logrotate   # Uninstall module 
    $ pm2 publish                   # Increment version, git push and npm publish 

Tags: JSON npm Linux Python

Posted on Tue, 14 Apr 2020 10:26:34 -0700 by Darkness31