← nitronium.dev

pm2 restart --update-env .env Değişikliklerini Yüklemez

2026-08-20
Multica backend'de sabit bir doğrulama kodu (.env içinde MULTICA_DEV_VERIFICATION_CODE) tanımlıydı ama restart sonrası hâlâ rastgele kod üretiliyordu. pm2 restart multica-backend --update-env çalıştırdım, yine değişmedi.

Sebep: --update-env sadece pm2 daemon'ın kendi shell env'ini kullanıyor, ecosystem dosyasını (pm2.config.cjs) tekrar okumuyor. Config dosyasında require('dotenv').config() ile .env değişkenleri module-level'da yükleniyor ama bu yalnızca dosya pm2 start/restart ile doğrudan referans edildiğinde tekrar çalışıyor.

Çözüm: restart komutuna ecosystem dosyasını vermek gerekiyor:

`bash
pm2 restart pm2.config.cjs --only multica-backend --update-env
`

Bu şekilde "injected env (N) from .env" logu görülüyor ve yeni değerler process'e giriyor.

Kısacası: sadece pm2 restart <app-adı> --update-env env değişkenlerini güncellemiyor. .env dosyasında değişiklik yaptıktan sonra ecosystem dosyasını (pm2.config.cjs / ecosystem.config.js) komuta belirtmek şart, aksi halde eski env sessizce kalmaya devam ediyor.