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.
Hướng dẫn cấu hình PM2 tự động chạy khi Windows Server khởi động lại (Chi tiết & Ổn định nhất)
Hướng dẫn cấu hình PM2 tự động chạy khi Windows Server khởi động lại (Chi tiết & Ổn định nhất)

Đố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.jsPM2 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:

  1. 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ặc y (Yes) nếu cài mới hoàn toàn. Thường chọn n là an toàn.
  2. 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.

  1. Click chuột phải vào This PC -> chọn Properties.
  2. Chọn Advanced system settings -> Environment Variables.
  3. 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).
  4. 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.

  1. 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:

  1. Không cần đăng nhập ngay lập tức.
  2. Đợi khoảng 1-2 phút để Windows Service khởi chạy.
  3. 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.msc trê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!

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *