Node.js Uygulaması PM2 ile Nasıl Çalıştırılır? PM2 Kurulum ve Kullanım Rehberi

kralbenim · 28 Eylül 2026 · 1 görüntülenme · 0 cevap

Node.js uygulamasını sunucuda sürekli çalışır durumda tutmak için PM2 process manager kullanılabilir. PM2 ile uygulama arka planda çalıştırılabilir, yeniden başlatılabilir, logları görüntülenebilir ve sunucu yeniden açıldığında uygulamanın otomatik başlaması yapılandırılabilir.


Özellikle VPS üzerinde çalışan Node.js web siteleri ve API servislerinde PM2 sık kullanılan çözümlerden biridir.

1. Node.js ve npm kurulumunu kontrol edin

Öncelikle sunucuda Node.js ve npm'in çalıştığını doğrulayın:

node -v

npm -v

Sürüm bilgileri görüntüleniyorsa sonraki adıma geçebilirsiniz.

2. PM2 kurulumu

PM2 npm üzerinden global olarak kurulabilir:

npm install pm2 -g

Kurulum tamamlandıktan sonra:

pm2 -v

komutuyla PM2'nin çalıştığını kontrol edin.

Yetki hatası alırsanız doğrudan rastgele izin değişiklikleri yapmak yerine Node.js ve npm'in sunucuda nasıl kurulduğunu kontrol edin.

3. Proje klasörüne geçin

Node.js uygulamanızın bulunduğu dizine gidin:

cd /proje/klasoru

Uygulamanın normalde hangi dosyayla başlatıldığını belirleyin.

Örneğin:

app.js

server.js

index.js

gibi bir başlangıç dosyası olabilir.

4. Node.js uygulamasını PM2 ile başlatın

Başlangıç dosyanız server.js ise:

pm2 start server.js

komutunu kullanabilirsiniz.

Uygulamaya özel bir isim vermek isterseniz:

pm2 start server.js --name uygulamam

şeklinde başlatabilirsiniz.

İsim vermek, aynı sunucuda birden fazla Node.js uygulaması çalıştırıldığında yönetimi kolaylaştırır.

5. npm script ile çalışan uygulamayı PM2 ile başlatma

Bazı projeler doğrudan node server.js yerine package.json içerisindeki bir script ile başlatılır.

Örneğin:

npm start

kullanılıyorsa PM2 üzerinden:

pm2 start npm --name uygulamam -- start

şeklinde çalıştırılabilir.

Projede hangi komutun kullanılması gerektiğini package.json içerisindeki scripts bölümünden kontrol edin.

6. Çalışan uygulamaları görüntüleyin

PM2 tarafından yönetilen işlemleri görmek için:

pm2 list

veya:

pm2 status

kullanabilirsiniz.

Burada uygulamanın:

- Adı
- Durumu
- Process ID
- Restart sayısı
- CPU kullanımı
- RAM kullanımı

gibi bilgiler görülebilir.

7. PM2 uygulamasını yeniden başlatma

Kod değişikliğinden sonra uygulamanızı yeniden başlatmanız gerekebilir.

İsme göre:

pm2 restart uygulamam

veya process ID ile:

pm2 restart 0

kullanılabilir.

Birden fazla uygulamanız varsa doğru işlemi yeniden başlattığınızdan emin olun.

8. Uygulamayı durdurma

PM2 işlemini geçici olarak durdurmak için:

pm2 stop uygulamam

kullanabilirsiniz.

Bu işlem uygulamayı PM2 listesinden silmez.

Tekrar çalıştırmak için:

pm2 restart uygulamam

kullanılabilir.

9. Uygulamayı PM2 listesinden silme

Bir uygulamayı PM2 yönetiminden tamamen kaldırmak için:

pm2 delete uygulamam

komutunu kullanabilirsiniz.

Bu işlem proje dosyalarınızı silmez. Yalnızca PM2 tarafından yönetilen process kaydını kaldırır.

10. PM2 loglarını görüntüleme

Uygulama çalışmıyorsa veya hata veriyorsa ilk bakılması gereken yerlerden biri loglardır.

Tüm PM2 loglarını görmek için:

pm2 logs

Belirli bir uygulama için:

pm2 logs uygulamam

kullanabilirsiniz.

Loglarda:

- Node.js hataları
- Veritabanı bağlantı sorunları
- Eksik environment değişkenleri
- Port problemleri
- Uygulama çökmeleri

gibi önemli bilgiler bulunabilir.

11. Son log satırlarını kontrol etme

Çok büyük bir log çıktısı yerine belirli sayıda son satırı görmek isterseniz:

pm2 logs uygulamam --lines 100

gibi bir kullanım tercih edilebilir.

Bu özellikle hata teşhisinde daha okunabilir bir çıktı sağlar.

12. Sunucu yeniden başladığında uygulama otomatik açılsın

PM2 ile uygulamanın VPS yeniden başlatıldığında otomatik olarak çalışması sağlanabilir.

Öncelikle:

pm2 startup

komutunu çalıştırın.

PM2 size işletim sisteminize uygun ek bir komut gösterebilir. Terminalde verilen talimatı uygulayın.

Ardından mevcut process listesini kaydetmek için:

pm2 save

komutunu çalıştırın.

Böylece kaydedilmiş uygulamaların sistem açılışında tekrar başlatılması yapılandırılabilir.

13. pm2 save neden önemlidir?

PM2 ile yeni bir uygulama başlattıktan veya process listesini değiştirdikten sonra:

pm2 save

kullanılması kayıtlı process listesini günceller.

Örneğin uygulamayı PM2 ile çalıştırmış ancak process listesini kaydetmemişseniz sunucu yeniden başlatıldığında beklediğiniz uygulama listesi geri gelmeyebilir.

14. Environment değişkenlerine dikkat edin

Node.js uygulamanız:

- Veritabanı adresi
- API anahtarı
- Port
- Secret key
- Uygulama ortamı

gibi environment değişkenleri kullanabilir.

PM2 altında çalışan uygulamanın gerekli değişkenlere erişebildiğinden emin olun.

.env dosyasında şifre veya API anahtarı bulunuyorsa bu dosyayı public GitHub repository'sine yüklemeyin.

15. Kod güncelledikten sonra PM2

Sunucuda Git üzerinden yeni kod aldıysanız temel süreç projeye göre şu şekilde olabilir:

git pull

npm install

pm2 restart uygulamam

Ancak her güncellemede npm install çalıştırmak zorunlu değildir. package.json veya bağımlılıklar değişmişse gerekebilir.

Veritabanı migration'ı kullanan projelerde gerekli migration adımları da ayrıca uygulanmalıdır.

16. PM2 sürekli restart atıyorsa

pm2 status ekranında restart sayısı sürekli yükseliyorsa uygulama açıldıktan hemen sonra çöküyor olabilir.

Bu durumda:

pm2 logs uygulamam

komutuyla gerçek uygulama hatasını kontrol edin.

Yaygın nedenler:

- Eksik npm paketi
- Yanlış environment değişkeni
- Veritabanı bağlantı hatası
- Portun kullanımda olması
- Kod hatası
- Dosya yolu problemi

olabilir.

Sürekli restart yaşandığında PM2'yi tekrar tekrar yeniden kurmak yerine uygulamanın loglarına bakmak daha doğru yaklaşımdır.

17. PM2 ile Nginx aynı şey değildir

PM2 ve Nginx farklı görevler üstlenebilir.

PM2 Node.js uygulama process'ini yönetirken Nginx genellikle gelen HTTP/HTTPS trafiğini uygulamanın çalıştığı yerel porta yönlendiren reverse proxy olarak kullanılabilir.

Örneğin Node.js uygulaması:

127.0.0.1:3000

üzerinde çalışırken Nginx alan adından gelen trafiği bu porta yönlendirebilir.

Bu yapı sayesinde SSL, alan adı ve web trafiği yönetimi Nginx tarafında gerçekleştirilebilir.

Temel PM2 komutları

En sık kullanılan komutlar:

pm2 start server.js --name uygulamam

pm2 status

pm2 logs uygulamam

pm2 restart uygulamam

pm2 stop uygulamam

pm2 delete uygulamam

pm2 startup

pm2 save

PM2 ile ilgili sorun yaşarsanız forumda yardım isterken Node.js sürümünüzü, PM2 sürümünüzü, kullandığınız başlangıç komutunu, pm2 status durumunu ve pm2 logs içerisinde görünen hata mesajını paylaşmanız sorunun daha hızlı bulunmasını sağlar.