Cài đặt và sử dụng pm2 để quản lý ứng dụng nodejs

2
1149

Trong quá trình deploy ứng dụng nodejs cho một số bạn dev, mình thấy một số bạn hay sử dụng cách basic là chạy node app.js, hay “tiên tiến” hơn là sử dụng tmux để tạo session rồi chạy lệnh trên. Tuy nhiên làm như vậy sẽ gặp vấn đề:

+ Không dễ dàng quản lý, monitor được ứng dụng

+ Ứng dụng sẽ stop khi đóng session terminal

+ Ứng dụng nếu bị crash sẽ không tự khởi động lại

+ Khi server khởi động lại thì ứng dụng không tự chạy (mặc dù vẫn có thể đặt cronjob hoặc gì đó để start nó lên)

Phần mềm pm2 được sinh ra để giải quyết tất cả các vấn đề đó.

1. Cài đặt:

Vào trang http://pm2.keymetrics.io/ nó sẽ cho 1 lệnh rất ngắn để cài đặt:

Như vậy là cài đặt xong.

2. Chạy ứng dụng với pm2

Giả dụ bạn đang chạy nó theo cách cũ là gõ node app.js

Thì với pm2 bạn có thể  chạy:

Với ungdung là tên do bạn đặt để dễ quản lý.

–watch là tùy chọn giúp cho pm2 sẽ theo dõi, nếu code của bạn có thay đổi, ví dụ update code mới, nó sẽ tự reload lại ứng dụng.

Một số lệnh quản lý:

pm2 list: liệt kê các app đang chạy

pm2 stop/start/delete ungdung: đọc là hiểu khỏi giải thích

pm2 monit: monitor ứng dụng đang chiếm bao nhiêu RAM, CPU, xem log, nói chung là nhìn tổng thể

pm2 logs ungdung: xem log của app có tên là ungdung

Giao diện monitor pm2 (Bấm vào ảnh để xem cho rõ)

3. Tự khởi động pm2 và các app khi server khởi động lại

Centos 6, Ubuntu14:

Với deploy là user (của OS) đã chạy ứng dụng.

Centos 7, Ubuntu 16 (sử dụng systemd)

Hoặc bạn gõ pm2 startup, nó sẽ ra câu lệnh hướng dẫn.

Chạy ứng dụng với pm2 rồi thì chỉ cần gõ:

Lệnh này sẽ lưu lại các app đang chạy và tự khởi động chúng lên sau khi bạn reboot server.

4. Lưu ý

pm2 command chỉ list ra các ứng dụng đã chạy với user đó. Ví dụ chạy app1 ở user deploy thì sang user khác, pm2 list sẽ không thấy.

 

2 COMMENTS

LEAVE A REPLY

Please enter your comment!
Please enter your name here