[object Object]

← 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 →