← back to Site Factory
sf-cncp-panel: launchd → pm2 cron_restart (gui/$UID domain unreachable)
e27fd4f2a0ae3b5f2e45133cf7422703e16c96c1 · 2026-05-19 21:23:43 -0700 · SteveStudio2
The com.steve.sf-cncp-panel launchd plist still exists at
~/Library/LaunchAgents/ but can't be loaded from non-Aqua shells
(launchctl bootstrap gui/$UID returns error 125 'Domain does not
support specified action'). The launchd job was throttled to oblivion
after the May-7 freeze and never came back.
Same script (scripts/cncp-panel-data.js), now run by pm2 with
cron_restart='*/1 * * * *' + autorestart:false. Verified: cron fires
~30s past every minute boundary, JSON file mtime advances, runs exit 0.
Legacy plist left in place but inert — safe to delete once Steve
confirms nothing else references it.
Files touched
Diff
commit e27fd4f2a0ae3b5f2e45133cf7422703e16c96c1
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Tue May 19 21:23:43 2026 -0700
sf-cncp-panel: launchd → pm2 cron_restart (gui/$UID domain unreachable)
The com.steve.sf-cncp-panel launchd plist still exists at
~/Library/LaunchAgents/ but can't be loaded from non-Aqua shells
(launchctl bootstrap gui/$UID returns error 125 'Domain does not
support specified action'). The launchd job was throttled to oblivion
after the May-7 freeze and never came back.
Same script (scripts/cncp-panel-data.js), now run by pm2 with
cron_restart='*/1 * * * *' + autorestart:false. Verified: cron fires
~30s past every minute boundary, JSON file mtime advances, runs exit 0.
Legacy plist left in place but inert — safe to delete once Steve
confirms nothing else references it.
---
ecosystem.config.js | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/ecosystem.config.js b/ecosystem.config.js
index e784890..963f841 100644
--- a/ecosystem.config.js
+++ b/ecosystem.config.js
@@ -68,6 +68,25 @@ module.exports = {
out_file: 'logs/sf-admin.out.log',
error_file: 'logs/sf-admin.err.log',
},
+ {
+ // Was a launchd StartInterval=60 job (com.steve.sf-cncp-panel) but the
+ // launchctl gui/$UID domain wasn't reachable from non-Aqua shells, so
+ // it silently throttled off after the May-7 freeze. Moved to pm2
+ // cron_restart 2026-05-19 so it lives in the same surface as the rest
+ // of the sf-* trio.
+ name: 'sf-cncp-panel',
+ script: 'scripts/cncp-panel-data.js',
+ cwd: __dirname,
+ env: {
+ NODE_ENV: 'production',
+ ORCH_URL: 'http://127.0.0.1:9880',
+ SF_BASIC_AUTH: 'admin:DWSecure2024!',
+ },
+ autorestart: false,
+ cron_restart: '*/1 * * * *',
+ out_file: 'logs/cncp-panel.out',
+ error_file: 'logs/cncp-panel.err',
+ },
{
name: 'site-wholivedthere',
cwd: '/Users/stevestudio2/Projects/site-factory/sites/wholivedthere.com/app',
← 5a1cbc4 sf-viewer: add missing BASIC_AUTH env (same fix as sf-orches
·
back to Site Factory
·
wholivedthere.com: ship live GA4 + fix audit-trail postJSON fa82160 →