pm2 icon indicating copy to clipboard operation
pm2 copied to clipboard

Fix ecosystem file reload not updating non-environment attributes

Open sanchitwadehra opened this issue 5 months ago • 1 comments

Description

Fixes #3742 - pm2 restart ecosystem.config.js does not reload app details from ecosystem file

When using pm2 restart ecosystem.config.js or pm2 reload ecosystem.config.js, only environment variables were being updated from the ecosystem file. Other configuration attributes like script path, cwd, interpreter, etc. were ignored.

Root Cause

The _startJson method in lib/API.js was only passing environment variables to the _operate method during restart/reload operations, but not the complete application configuration needed to update non-environment attributes.

Solution

Modified the _startJson method to pass the complete application configuration as current_conf when performing restart/reload operations on ecosystem files. This enables the existing Utility.extendExtraConfig mechanism to update all configuration attributes.

Changes

  • Extract complete app configuration from ecosystem file during restart/reload
  • Pass configuration as current_conf to enable extendExtraConfig processing
  • Remove env property from config copy to avoid duplication with existing env handling
  • Maintains full backward compatibility

Testing

  • ✅ Existing unit tests pass
  • ✅ App configuration update tests pass
  • ✅ JSON file handling tests pass
  • ✅ Restart/reload operations work correctly
  • ✅ No breaking changes to existing functionality

Impact

  • Before: Only environment variables updated, other config ignored
  • After: All ecosystem file attributes (script, cwd, interpreter, instances, etc.) properly updated
  • Result: Eliminates need for pm2 kill && pm2 start workarounds that cause unnecessary downtime

This resolves a 6-year-old issue that has affected many PM2 users who need to update application configurations without downtime.

sanchitwadehra avatar Aug 31 '25 10:08 sanchitwadehra

CLA assistant check
All committers have signed the CLA.

CLAassistant avatar Aug 31 '25 10:08 CLAassistant