Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Fix ecosystem file reload not updating non-environment attributes #6029

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
sanchitwadehra wants to merge 3 commits into Unitech:master
base: master
Choose a base branch
Loading
from sanchitwadehra:fix-ecosystem-reload-issue-3742

Conversation

Copy link

@sanchitwadehra sanchitwadehra commented Aug 31, 2025

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.

Fixes Unitech#3742
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.
This fix modifies the _startJson method in lib/API.js to pass the complete
application configuration (not just environment variables) when performing
restart/reload operations on ecosystem files.
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
- Maintains backward compatibility with existing environment variable handling
Now all ecosystem file attributes (script, cwd, interpreter, instances, etc.)
are properly updated during restart/reload operations, eliminating the need
for 'pm2 kill && pm2 start' workarounds that cause unnecessary downtime.
Copy link

CLAassistant commented Aug 31, 2025
edited
Loading

CLA assistant check
All committers have signed the CLA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

pm2 restart ecosystem.config.js does not reload app details from ecosystem file

AltStyle によって変換されたページ (->オリジナル) /