Bạn muốn cấu hình PM2 tự động khởi động lại các ứng dụng Node.js khi Windows Server reboot? Xem ngay hướng dẫn cài đặt pm2-windows-service chi tiết, đảm bảo uptime 100% cho hệ thống.

Đối với các nhà phát triển Node.js hoặc quản trị viên hệ thống (DevOps), việc đảm bảo ứng dụng luôn hoạt động (uptime) là ưu tiên hàng đầu. Một vấn đề phổ biến khi triển khai trên môi trường Windows Server là: Khi máy chủ khởi động lại (reboot) sau khi cập nhật hoặc gặp sự cố, PM2 và các ứng dụng Node.js không tự động bật lại.
Bài viết này sẽ hướng dẫn bạn cách xử lý triệt để vấn đề này bằng cách cài đặt PM2 như một Windows Service, giúp ứng dụng của bạn luôn online ngay cả khi server vừa khởi động lại mà không cần đăng nhập user.
Tại sao lệnh pm2 startup thường gặp lỗi trên Windows?
Trên Linux, câu lệnh pm2 startup hoạt động rất mượt mà. Tuy nhiên, trên Windows, cơ chế quản lý service khác biệt khiến lệnh native này thường xuyên gặp lỗi về quyền hạn (permissions) hoặc không tương thích môi trường.
Giải pháp tối ưu nhất hiện nay được cộng đồng tin dùng là sử dụng gói thư viện bổ trợ: pm2-windows-service.
Các bước cài đặt PM2 tự động khởi động trên Windows
Yêu cầu chuẩn bị
- Đã cài đặt Node.js và PM2 trên Windows Server.
- Quyền truy cập Administrator (Quan trọng).
Bước 1: Cài đặt gói pm2-windows-service
Đầu tiên, bạn cần mở PowerShell hoặc Command Prompt (CMD) dưới quyền Run as Administrator.
Chạy lệnh sau để cài đặt gói hỗ trợ vào thư mục global:
npm install -g pm2-windows-service
Lưu ý: Việc cài đặt ở chế độ Global (-g) là bắt buộc để gói này có thể can thiệp vào hệ thống Services của Windows.
Bước 2: Cài đặt Service vào Windows
Sau khi tải xong, bạn chạy lệnh sau để tiến hành cài đặt service:
pm2-service-install
Hệ thống sẽ đưa ra một vài câu hỏi, bạn có thể cấu hình như sau:
- Perform environment setup?: Nhập
n(No) nếu bạn muốn giữ nguyên cấu hình hiện tại, hoặcy(Yes) nếu cài mới hoàn toàn. Thường chọnnlà an toàn. - Set PM2_HOME?: Nhấn
Enterđể sử dụng đường dẫn mặc định (thường là%USERPROFILE%\.pm2).
Sau khi hoàn tất, bạn sẽ thấy thông báo: “Service PM2 installed and started”.
Bước 3: Thêm biến môi trường hệ thống (System Environment Variable)
Để tránh lỗi “PM2 không tìm thấy process” khi Windows khởi động lại, bạn cần thêm biến môi trường PM2_HOME.
- Click chuột phải vào This PC -> chọn Properties.
- Chọn Advanced system settings -> Environment Variables.
- Tại phần System variables (khung bên dưới), chọn New:
- Variable name:
PM2_HOME - Variable value: Đường dẫn đến thư mục .pm2 của bạn (Ví dụ:
C:\Users\Administrator\.pm2).
- Variable name:
- Nhấn OK để lưu lại.
Bước 4: Khởi chạy ứng dụng và Lưu cấu hình (Quan trọng)
Đây là bước quyết định. Bạn cần bật các ứng dụng Node.js của mình lên, sau đó ra lệnh cho PM2 “ghi nhớ” danh sách này.
- Khởi chạy ứng dụng của bạn:
pm2 start app.js --name "my-api-server"
Sau khi chắc chắn ứng dụng đang chạy ổn định (kiểm tra bằng pm2 list), hãy chạy lệnh lưu:
pm2 save
Lệnh pm2 save sẽ chụp lại trạng thái hiện tại (dump process list) và lưu vào file dump. Khi Windows Service khởi động, nó sẽ đọc file này để khôi phục lại toàn bộ ứng dụng.
Bước 5: Kiểm tra kết quả (Test Reboot)
Hãy thử khởi động lại Windows Server (Restart). Sau khi máy chủ lên lại:
- Không cần đăng nhập ngay lập tức.
- Đợi khoảng 1-2 phút để Windows Service khởi chạy.
- Truy cập thử vào website/API của bạn hoặc remote vào server và gõ
pm2 listđể kiểm tra.
Nếu danh sách ứng dụng hiện ra trạng thái ONLINE, bạn đã cấu hình thành công!
Cách gỡ bỏ Service (Nếu cần thiết)
Nếu bạn muốn gỡ bỏ tính năng tự động khởi động hoặc cần cài đặt lại, hãy sử dụng lệnh:
pm2-service-uninstall
Một số lỗi thường gặp
- Lỗi “Spawning…”: Thường do Node.js chưa được thêm vào PATH của hệ thống hoặc sai đường dẫn
PM2_HOME. Hãy kiểm tra lại Bước 3. - Service cài rồi nhưng không chạy: Vào
Services.msctrên Windows, tìm service tên “PM2”, chuột phải chọn Properties và đảm bảo Startup type là Automatic.
Kết luận
Việc cấu hình PM2 tự động chạy khi Windows Server khởi động lại là bước không thể thiếu để đảm bảo tính chuyên nghiệp và ổn định cho hệ thống backend. Chỉ với vài bước đơn giản cùng pm2-windows-service, bạn đã có thể yên tâm ngủ ngon mà không lo server bị “sập” sau mỗi lần bảo trì hệ thống.
Chúc các bạn thao tác thành công!


CÔNG TY TNHH THƯƠNG MẠI DỊCH VỤ MINH BEE
MINH BEE SOFTWARE SOLUTIONS chuyên thiết kế website chuẩn SEO, thiết kế logo toàn diện giúp doanh nghiệp xây dựng một thương hiệu mạnh và bán hàng hiệu quả trên các nền tảng số cho nhiều lĩnh vực kinh doanh.
Vui lòng liên hệ: 176A/22 Đường Số 6, Phường Bình Tân, TP. Hồ Chí Minh
Điện thoại: 0903.728.335
Website: web.minhbee.vn