Niyə PM2 lazımdır?
Node.js single-thread-dir. Tətbiq crash olarsa restart olmur, server core-larından yalnız 1-i istifadə edir, log avtomatik fayla yazılmır. PM2 bütün bu problemləri həll edir.
Quraşdırma
npm install -g pm2
Tətbiq başlatmaq
pm2 start app.js --name myapp
Cluster mode (bütün core-lar):
pm2 start app.js -i max --name myapp
Watch mode (development)
pm2 start app.js --watch
Memory limiti
pm2 start app.js --max-memory-restart 500M
Boot-da avtomatik başlatma
pm2 startup # çıxan komandanı icra et pm2 save
Logları görmək
pm2 logs # bütün pm2 logs myapp # spesifik tətbiq pm2 logs --lines 100 # son 100 sətir
ecosystem.config.js
Tövsiyə: konfiqurasiya faylı yarat:
module.exports = {
apps: [{
name: 'myapp',
script: './app.js',
instances: 'max',
exec_mode: 'cluster',
autorestart: true,
watch: false,
max_memory_restart: '500M',
env: {
NODE_ENV: 'production',
PORT: 3000
}
}]
};pm2 start ecosystem.config.js
Monitoring
pm2 monit # real-time pm2 status # cədvəl pm2 list
Zero-downtime reload
pm2 reload myapp
Köhnə prosesi yenisi tam başladıqdan sonra dayandırır - istifadəçi heç fərqi hiss etmir.
Web dashboard
pm2 plus # əlçatan dashboardı qoş