PM2, Node.js uygulamalarını yönetmek ve optimize etmek için kullanılan popüler bir süreç yöneticisidir. Özellikle üretim ortamında, uygulamalarınızın sürekli olarak çalışır durumda kalmasını sağlamak için son derece kullanışlıdır. Bu rehberde, PM2'nin kurulumu, temel kullanımı ve gelişmiş özellikleri hakkında kapsamlı bir bilgi sunacağız.
PM2, Node.js uygulamalarını yönetmek için tasarlanmış bir süreç yöneticisidir. Aşağıdaki avantajları sunar:
PM2'yi kurmak oldukça basittir. İlk adım, Node.js ve npm'nin sisteminizde yüklü olduğundan emin olmaktır. Ardından, PM2'yi global olarak yüklemek için aşağıdaki komutu kullanabilirsiniz:
npm install pm2 -g
Bu komut, PM2'yi global olarak kurar ve komut satırından erişilebilir hale getirir.
PM2 ile bir Node.js uygulamasını başlatmak için aşağıdaki komutu kullanabilirsiniz:
pm2 start app.js
Burada app.js, başlatmak istediğiniz Node.js dosyasının adıdır. PM2, uygulamanızı başlattıktan sonra, uygulamanızın çalışır durumda olduğunu ve sürecin yönetildiğini gösterir.
PM2, süreçlerinizi yönetmek için bir dizi kullanışlı komut sağlar. Bu komutlar, uygulamalarınızı başlatma, durdurma, yeniden başlatma ve silme işlemlerini kolayca gerçekleştirmenizi sağlar.
PM2 tarafından yönetilen tüm süreçleri listelemek için:
pm2 list
Bu komut, çalışan tüm uygulamaların bir listesini ve durumlarını gösterir.
Bir uygulamayı yeniden başlatmak için:
pm2 restart app.js
Bu komut, app.js dosyasını yeniden başlatır ve herhangi bir kesinti olmadan çalışmaya devam eder.
Bir uygulamayı durdurmak için:
pm2 stop app.js
Bu komut, belirtilen uygulamayı durdurur, ancak sürecini PM2'nin listesinde tutar.
Bir uygulamayı süreç listesinden tamamen kaldırmak için:
pm2 delete app.js
Bu komut, uygulamanın sürecini durdurur ve PM2'nin yönetim listesinden çıkarır.
PM2, uygulama loglarını merkezi bir yerde toplar ve yönetir. Logları izlemek için:
pm2 logs
Bu komut, tüm süreçlerin loglarını gerçek zamanlı olarak görüntüler. Ayrıca, belirli bir uygulamanın loglarını görüntülemek için uygulama ID'sini veya adını kullanabilirsiniz:
pm2 logs [app-id|name]
PM2, uygulamalarınızın performansını izlemek için kullanışlı araçlar sunar. Gerçek zamanlı olarak CPU ve bellek kullanımını izlemek için aşağıdaki komutu kullanabilirsiniz:
pm2 monit
Bu komut, tüm süreçlerin performansını ve sistem kaynak kullanımını gösteren etkileşimli bir monitör ekranı açar.
PM2, sadece temel süreç yönetimi komutlarıyla sınırlı değildir. Aşağıda, PM2'nin sunduğu bazı gelişmiş özellikler ve kullanım senaryoları bulunmaktadır:
PM2, uygulamalarınızın çökmesi durumunda otomatik olarak yeniden başlatılmasını sağlar. Bu, yüksek kullanılabilirlik gerektiren üretim ortamları için kritik öneme sahiptir. PM2'nin bu özelliği varsayılan olarak etkindir, ancak özelleştirilebilir:
pm2 start app.js --watch
Bu komut, app.js dosyasında yapılan herhangi bir değişiklikte uygulamanın otomatik olarak yeniden başlatılmasını sağlar.
PM2'yi daemon modu ile çalıştırarak, sunucunuzu yeniden başlattığınızda bile uygulamalarınızın otomatik olarak başlatılmasını sağlayabilirsiniz. Bunu yapmak için:
pm2 startup
Bu komut, PM2'yi sisteminize uygun şekilde yapılandırarak, sunucu yeniden başlatıldığında PM2'nin otomatik olarak başlamasını sağlar. Ardından, mevcut süreçlerinizi kaydetmek için:
pm2 save
Bu komut, PM2 tarafından yönetilen tüm süreçleri kaydeder ve yeniden başlatma sonrasında otomatik olarak geri yükler.
PM2, JSON veya YAML formatında konfigürasyon dosyaları kullanarak uygulamalarınızı yönetmenizi sağlar. Örneğin, ecosystem.config.js adında bir konfigürasyon dosyası oluşturabilirsiniz:
module.exports = {
apps: [
{
name: 'app',
script: './app.js',
watch: true,
env: {
NODE_ENV: 'development'
},
env_production: {
NODE_ENV: 'production'
}
}
]
};
Bu dosya, PM2'nin başlatma komutlarına ek olarak, uygulamalarınız için farklı ortam değişkenlerini ve seçeneklerini tanımlamanıza olanak tanır. Bu dosyayı kullanarak uygulamanızı başlatmak için:
pm2 start ecosystem.config.js
PM2, Node.js uygulamalarını yönetmek için güçlü ve esnek bir süreç yöneticisidir. Bu rehberde, PM2'nin kurulumundan temel ve gelişmiş özelliklerine kadar kapsamlı bir bilgi sunduk. PM2'yi kullanarak, Node.js uygulamalarınızın performansını artırabilir, kesintisiz çalışmasını sağlayabilir ve yönetim süreçlerini kolaylaştırabilirsiniz. Daha fazla bilgi ve ileri düzey kullanım senaryoları için PM2'nun resmi dokümantasyonunu ziyaret edebilirsiniz.