Giới thiệu PM2 – Trình quản lý các ứng dụng NodeJS

Trong bài viết này, mình sẽ giới thiệu về PM2, cho thấy lý do tại sao nó là một công cụ có giá trị như vậy để quản lý các ứng dụng NodeJS.

Trong quá trình phát triển một ứng dụng nodejs, bạn thường khởi chạy app bằng lệnh node app.js, nhưng khi đưa ứng dụng lên môi trường production(prod) thì không đơn giản như vậy.

Giới thiệu PM2 - Trình quản lý các ứng dụng NodeJS
Giới thiệu PM2 – Trình quản lý các ứng dụng NodeJS

Trên môi trường prod bạn cần phải quan tâm tới nhiều thứ hơn: Phân quyền người dùng chạy ứng dụng, quản lý tiến trình, logs, tự khởi động lại…

PM2 là gì?

PM2 là một công cụ quản lý tiến trình nodejs hoàn hảo cho bạn trong hầu hết trường hợp chạy ứng nodejs trên môi trường prod.

Một trong những điểm mạnh của công cụ này là có cung cấp API cho phép lập trình viên có thể điều khiển, giám sát các tiến trình nodejs khác trong một ứng dụng nodejs.

Cài đặt PM2

Phiên bản PM2 mới nhất có thể cài đặt được với NPM hoặc Yarn:

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

Để khởi động một ứng dụng NodeJS

Cách đơn giản nhất để bắt đầu, trình bày và theo dõi ứng dụng của bạn bằng cách sử dụng dòng lệnh này:

pm2 start app.js

Hoặc bắt đầu bất kỳ ứng dụng nào khác một cách dễ dàng:

pm2 start bashscript.sh
pm2 start python-app.py --watch
pm2 start binary-file -- --port 1520

Bạn có thể tìm hiểu thêm tại đây

Quản lý quy trình ứng dụng NodeJS với PM2

Quản lý trạng thái ứng dụng rất đơn giản, đây là các lệnh bạn có thể sử dụng:

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

Thay vì app_namebạn có thể sử dụng:

  • all hành động trên tất cả các processes
  • id hành động trên một id processes cụ thể

Start một npm script với pm2

Đa số trong các ứng dụng NodeJs bạn sẽ sử dụng npm để quản lý các module, package đi kèm. Và bao gồm cả các npm scripts đi kèm để chạy ứng dụng trong file package.json.

Ví dụ như file package.json sau:

 {
  "name": "pm2_app_demo",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "start": "node app.js",
    "dev": "nodemon app.js",
    "test": "echo "Error: no test specified" && exit 1"
  },
  "dependencies": {
    "body-parser": "^1.17.2",
    "express": "^4.15.3",
    "pm2": "^2.6.1",
    "socket.io": "^2.0.3"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "bootstrap": "^3.3.7",
    "jquery": "^3.2.1"
  }
}

Thông thường, để chạy project trong file package.json trên, bạn sẽ chạy lệnh npm run start hoặc npm run dev

Xem thêm:

Nhưng đối với pm2 để chạy các npm scripts, bạn có thể sử dụng cách sau đây.

Tạo một file json đặt tên là my-app-pm2.json với nội dung như sau

{
    "apps": [
        {
            "name": "my-app",
            "script": "npm",
            "args" : "start"
        }
    ]
}

Và sau đó chạy pm2 với file json vừa tạo: pm2 start my-app-pm2.json

Oh My Zsh: Nâng cao trải nghiệm terminal với giao diện đẹp và các plugin tăng hiệu suất! Git cherry-pick là gì? Cách sử dụng và ví dụ Git Rebase: Gộp nhiều commit thành một để tối ưu hóa lịch sử commit 11 tính năng JavaScript mới tuyệt vời trong ES13 (ES2022) CSS diệu kỳ: Các thuộc tính CSS mà bạn có thể chưa biết Auto deploy projects với GitHub Actions – sử dụng ssh-action WordPress Gutenberg Block Server Side Render Add, Upload image trong Gutenberg Block Development Tạo Block Controls – Block Toolbar và Settings Sidebar trong WordPress Gutenberg Làm quen với các components thường dùng khi tạo Gutenberg Block

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.