Sử dụng pm2 để giữ các kết nối trên Server
Cài PM2
npm install pm2 -g
Chạy helloworld bằng PM2
pm2 start helloworld.js
Xem có bao nhiêu Node app
pm2 list
Xem log của app
pm2 logs 0
Chia nhiều cluster dựa vào số Core có sẵn
pm2 start app.js -i maxKiểm tra số core
lscpu
Chạy thêm một instance của app trên port 3001
PORT=3001 pm2 start -f helloworld.js
Xem trạng thái sử dụng tài nguyên của app
pm2 monit
Tự khởi lại app lúc startup
Chạy lệnh sau để PM2 sinh ra kịch bản khởi động trên hệ thống (chọn os bạn đang sử dụng tương ứng với các tham số)
sudo pm2 startup
Tạo và cấu hình tập lệnh khởi động để khởi chạy PM2
pm2 startup systemd
Lưu PM2 app process
pm2 save
Giữ kết QUEUE trong Laravel sử dụng lệnh bên dưới
pm2 start artisan --interpreter php --name laravel-queue -- queue:work --daemon
Trong đó laravel-queue là tên app
Giữ kết nối với Python Django
Tạo file lienvu.sh với nội dung
python manage.py runserver 0.0.0.0:8000
Xử lý lỗi
Chạy lệnh tìm các PID bị treo
ps aux | grep pm2
Kiếm trả 1 port bị treo đang ở PID nào
lsof -i :4038
Sử dụng lệnh KILL các pm2 bị treo và start lại
kill -9 PID
Lỗi "AXM MONITOR Unknown"
pm2 kill && pm2 resurrect
Lỗi "AXM MONITOR Unknown id _old_30"
Xóa cache PM2 và restart
pm2 update
pm2 kill
pm2 start <your_app>
Xóa và cài lại PM2
Nếu lỗi vẫn còn, thử gỡ cài đặt PM2 và cài lại:
npm uninstall -g pm2
npm install -g pm2
pm2 start <your_app>
Reset cấu hình PM2
Nếu có dữ liệu cũ trong PM2, thử reset:
pm2 reset all
pm2 delete all
pm2 start <your_app>
Hoặc dùng câu lệnh làm sạch
pm2 save
pm2 flush
pm2 update
Tắt AXM Monitor nếu không sử dụng
Nếu không dùng Keymetrics (PM2 Monitoring), tắt nó đi:
pm2 set pm2:axm false
pm2 restart <your_app>